External Leads
Communication → External leads is where leads coming from outside WhatsApp — your website forms, ad platforms, partner CRMs, or any other source — appear in Remo. Once a lead is imported, the bot can reach out automatically and the conversation continues like any other WhatsApp chat.
Where Leads Come From
External leads are created by sending a request to a webhook URL unique to your project. Common sources include:
- A contact form on your website
- A lead-ad or lead-form campaign
- A CRM (HubSpot, Salesforce, custom)
- A landing page or partner portal
Anything that can make an HTTP request can push leads to Remo.
The Leads Table
The main page lists every external lead with:
- Name — the lead's display name
- Phone — the WhatsApp number to contact
- Source — where the lead came from (your CRM name, the campaign, etc.)
- Status — Pending, Contacted, or Converted, worked out automatically from what has happened to the lead
- Created at — when the lead first reached Remo
Status is derived, not something you set by hand: a lead with a conversation is Converted, one that has been messaged is Contacted, and everything else is Pending. The filters above the table — All, Pending, Contacted, Converted — narrow the view. The empty state appears with the message "No external leads yet" until your first lead is imported.
A header toggle, Auto-message new leads, controls whether Remo contacts them for you. It is on by default.
What Each Lead Records
Beyond name, phone, and email, Remo now captures and displays the context that came in with the submission:
- Province and city — where the lead is, when the form asked
- UTM source, UTM medium, UTM campaign, UTM term, and UTM content — the campaign tracking parameters carried by the link the lead clicked
- Extra form answers — any additional fields your form sent through, kept alongside the lead rather than discarded
This is what turns a phone number into a lead you can act on: you can see which campaign produced it and what the person already told you, without opening another system.
How the Bot Uses That Context
Everything recorded on the lead is passed into the conversation, so the bot starts informed rather than blank. In practice that means two things:
- It can reference the campaign or the form naturally — the opening doesn't read like a cold message to a stranger
- It won't re-ask for something the form already collected — nobody has to type their city twice, which is one of the fastest ways to lose a warm lead
Webhook Configuration
The configuration card shows everything you need to start sending leads:
| Field | What It's For |
|---|---|
| Webhook URL | The endpoint your external system POSTs to |
| Bearer token | The secret token used to authenticate the request |
| Welcome message | The text the bot sends to the lead when they're imported |
The bearer token and the welcome message are managed on the Configuration page, and anyone who isn't an admin sees the token masked.
How to Send a Lead
POST a JSON body to the webhook URL with the Authorization: Bearer <token> header. The body must contain:
{
"projectId": "your-project-id",
"name": "Jane Doe",
"phone": "+1 555 123 4567",
"email": "jane@example.com"
}
The exact format is shown directly on the configuration card. Once Remo receives the request, the lead appears in the table and (if enabled) the bot opens a WhatsApp conversation with the welcome message you've configured.
Customizing the Welcome Message
The welcome message is the very first thing the lead receives — pick something warm, on-brand, and direct. Open the Welcome message field, edit the text, and click Save welcome message. From that point on, every newly imported lead gets the new copy.
You can personalize it with variables. The card shows them as chips you can click to copy straight into your text:
| Variable | What It Inserts |
|---|---|
{{firstName}} | The lead's first name only |
{{name}} | The lead's full name as submitted |
{{email}} | The email address on the lead |
{{country}} | The lead's country |
{{interest}} | What the lead said they were interested in |
{{utm_source}} | The campaign source the lead arrived from |
{{utm_campaign}} | The campaign name the lead arrived from |
{{metadata.field}} | Any extra form answer, using that field's own name |
A variable Remo can't resolve is simply left blank — it never appears as raw text in the message. Write the sentence so it still reads correctly when a value is missing: "Hi {{firstName}}, thanks for reaching out" survives an empty name; "Hi {{firstName}}!" leaves an awkward gap.
Rotating the Bearer Token
Click Regenerate if you suspect the token has been leaked. The old token is invalidated immediately and any external system still using it will need to be updated.
Anyone with the bearer token can create leads in your project and trigger outbound WhatsApp messages on your behalf. Treat it like a password.
When Leads Get Contacted
When auto-contact is on, an imported lead isn't messaged the instant the webhook fires. The bot waits a short delay — 10 minutes by default — and then opens the conversation. The pause keeps the outreach from feeling automated to someone who has just clicked submit, and gives you a window to spot a bad import before it reaches anyone.
Returning Leads
A person who fills out your form a second time is re-engaged, not dropped. When a repeat submission arrives, Remo:
- Refreshes their details with whatever the new submission carried, so the newest information wins
- Sends a re-engagement message rather than the standard first-contact welcome, because they aren't a stranger
A 7-day cooldown sits in front of this. Someone who submits twice in the same week won't be messaged twice, and a lead who is in the middle of a live conversation is never interrupted by a re-engagement.
Managing Leads
Each row carries its own actions:
- View details — open the full lead record, including the location and campaign fields above
- Message now — contact a Pending lead immediately instead of waiting for the automatic delay
- Open chat — jump to the conversation of a Converted lead in Chats
Tips
- Send a small test lead first to confirm your webhook integration works before connecting it to a high-volume source.
- Use the Source field consistently — it's the easiest way to filter leads by campaign or origin in analytics.
- Pass your UTM parameters through on every form. They cost nothing to send and they're what lets you tell a good campaign from an expensive one later.
- Pair external leads with WhatsApp Templates when your provider requires one: outside the messaging window, the welcome message must be a pre-approved template.