Skip to main content

Instagram, Messenger and WhatsApp via ManyChat

Your ManyChat bot sends each conversation to CloseUp as a lead, even before the customer shares a phone number.

ManyChat runs the conversation on Instagram, Messenger or WhatsApp. At each key step, the bot sends what it collected to a CloseUp campaign address. CloseUp creates the lead and updates it as the conversation moves on.

Before you start

  • A ManyChat account with an Instagram, Messenger or WhatsApp channel connected.
  • Permission to manage integrations in CloseUp (usually the company admin).
  • A CloseUp campaign that the bot leads will belong to.

Setup

  1. Pick a campaign
    In CloseUp, open Lead Sources and choose Instagram & Messenger DMs. Create a campaign for Instagram or Facebook, or pick an existing one.
  2. Copy the address
    Copy the campaign's address. It identifies your company, so keep it private.
  3. Add a request to the bot
    In ManyChat, add an Action → External Request to your flow, using POST with a JSON body, and paste the address.
  4. Map the fields
    Fill the request body using the field list below and ManyChat's variables. Send IDs as quoted strings.
  5. Send an update at each step
    Send a request when the conversation starts, as it progresses, and when it completes, always with the same contact ID. All updates then land on the same lead.
  6. Test
    Run the flow from a test account with a dedicated test keyword. Keep Default Reply and ad triggers off until everything works. The lead appears in the campaign.
Anyone who has the campaign address can send leads to it. Do not share it, show it to customers or include it in screenshots. If it leaks, create a new address for the campaign in Lead Sources. The old address stops working immediately, and you must paste the new one into ManyChat.

Fields you can send

Send only the answers the bot collected, not a full contact dump. Leave out fields you have no value for.

FieldRequired whenWhat to send
sourceAlwaysinstagram, messenger or whatsapp
manychat_account_idInstagram / Messenger without phone or email, and WhatsApp conversations with stagesYour ManyChat account ID, digits only, as a string
manychat_contact_idInstagram / Messenger without phone or emailManyChat's Contact Id, digits only, as a string. Not a username and not a Meta ID
nameOptionalContact name
phoneWhatsApp: phone or email in the first requestLeave empty until the customer provides it
emailOptionalEmail address
instagram_usernameOptional (Instagram)Instagram username
facebook_nameOptional (Messenger)Facebook name
messageOptionalThe customer's answer, word for word
intake_statusRecommendedstarted, partial or completed
intake_stageRecommendedThe current step, for example "Awaiting phone". For WhatsApp: the steps separated by |
campaignid, campaign_name, ad_id, ad_nameOptionalMeta ad context, only when verified (see below)
Instagram
{
  "source": "instagram",
  "manychat_account_id": "5619482",
  "manychat_contact_id": "123456789",
  "instagram_username": "example",
  "name": "Example Name",
  "phone": "",
  "message": "Customer's answer, preserved verbatim",
  "intake_status": "partial",
  "intake_stage": "Awaiting phone",
  "campaignid": "123",
  "campaign_name": "Example Meta campaign",
  "ad_id": "456",
  "ad_name": "Example ad"
}
Messenger
{
  "source": "messenger",
  "manychat_account_id": "5619482",
  "manychat_contact_id": "123456789",
  "facebook_name": "Example Name",
  "name": "Example Name",
  "phone": "",
  "message": "Customer's answer, preserved verbatim",
  "intake_status": "partial",
  "intake_stage": "Awaiting phone"
}
WhatsApp
{
  "source": "whatsapp",
  "manychat_account_id": "5619482",
  "manychat_contact_id": "123456789",
  "name": "Example Name",
  "phone": "0500000000",
  "message": "Customer's answer, preserved verbatim",
  "intake_status": "partial",
  "intake_stage": "Welcome|Topic|Preferred time"
}

How CloseUp matches and updates leads

  • Each ManyChat contact gets one lead. Later requests update that lead, and a phone or email sent later fills empty fields.
  • If the phone or email matches an existing lead that has no ManyChat identity yet, the identity is added to that lead.
  • When details conflict, for example the contact matches one lead and the phone matches another, the request is rejected for manual review. CloseUp never merges two leads automatically.
  • Each lead can be linked to one ManyChat Instagram identity.
  • Sending the same request again can add another activity entry, so avoid duplicate submissions.
  • The activity entry on the lead is a summary of what was collected, not a full chat transcript.

Ad attribution

  • Ad fields are optional. Fill them only at the verified ad entry point, such as an Instagram Ads trigger or a tagged Ref URL. A normal keyword test cannot identify an ad.
  • Do not reuse a contact's old ad fields for a later, unrelated conversation.
  • campaignid is the Meta campaign ID. It is separate from the CloseUp campaign address.
  • Missing ad fields do not prove a lead is organic.

WhatsApp conversations with stages

  • The first request must include a phone or an email.
  • Send manychat_account_id, intake_stage with the steps separated by |, and intake_status.
  • All updates from one conversation update a single entry on the lead's timeline. After 24 hours without activity, a new conversation starts a new entry.
  • You can turn on an automatic follow-up task for conversations that stall. See Paid booking.