MetaLink - meta Webhook And Auth Aggregator
One Facebook App, Unlimited Clients - Meet the MetaLink
If you build Messenger automation for clients, you know the pain: for every new client, you need a new Facebook app, a new app review, new permissions, and another thing to keep secure. It’s slow, repetitive, and drains your energy. Not anymore.
Today, I’m releasing a free tool that kills that problem forever.
The Problem: App Sprawl is Killing Your Speed
As a developer or agency owner, when you take on a client for Messenger automation (chatbots, lead gen, n8n workflows), here’s the usual drill:
- Create a new Facebook App in Meta for Developers.
- Configure Messenger settings, webhooks, and permissions.
- Go through app review (again) if you need advanced permissions.
- Manually guide each client through connecting their Page.
- Maintain, secure, and monitor multiple apps.
If you have 10 clients, you might have 10 apps. Each one is a maintenance burden, a security surface, and a time sink. You spend more time managing apps than building automations. That’s backward.
The Solution: A Single App That Handles All Your Clients
The Meta Webhook Aggregator by ElTanvir changes the model entirely. You create one Facebook app. This tool then lets you add unlimited clients under that single app, each with their own webhook endpoint (your n8n workflow URL, Make webhook, custom endpoint — whatever you use).
Here’s the magic:
- You add a client name and a webhook URL inside the aggregator.
- It gives you a unique onboarding link for that client.
- You send the link to your client.
- They click it, authorize their Facebook Page, and it’s bound to your app automatically.
- Incoming messages from that Page go straight to their specific webhook. No data mix-ups.
How It Works
Grab The Docker Compose from Below
services:
metalink:
image: eltanvir/metalink:latest
container_name: metalink
restart: unless-stopped
environment:
- APP_ENV=production
- IN_DOCKER=true
- ADMIN_USERNAME=username_for_login
- ADMIN_PASSWORD=password_for_login
- TOKEN_SYMMETRIC_KEY=32_character_random_string_generate_from_any_password_generator
volumes:
- metalink_data:/data
labels:
- traefik.enable=true
- traefik.http.routers.metalink.rule=Host(`metalink.yourdomain.com`)
- traefik.http.routers.metalink.entrypoints=websecure
- traefik.http.routers.metalink.tls.certresolver=letsencrypt
- traefik.http.services.metalink.loadbalancer.server.port=8080
volumes:
metalink_data:Deploy
Add a client
Enter a name and the webhook URL where their Facebook messages should flow (e.g., your n8n production workflow).
Share the onboarding link
your client clicks, logs in with Facebook, selects the Page, and you’re live.
ADMIN_USERNAME : the user Name you Would use to Login
ADMIN_PASSWORD : Secure Login password
TOKEN_SYMMETRIC_KEY : 32 character Long secure String you Can Generate From Any Online Password Generator aslong is 32 Character long cant be more Cant be less. Exactly 32 Character
- traefik.http.routers.metalink.rule=Host(
metalink.yourdomain.com) : This Super Important. this Where you Configure your Domain. Don't Change "traefik.http.routers.metalink.rule=Host(`" this Part. keep it as it is. replace metalink.yourdomain.com with you Domain or Subdomain. make Sure you are Pointing you Domain to Hostinger VPS