Manychat

App · Marketing Automation · 19 actions

Work with the contacts in a Manychat account across Instagram, Messenger, WhatsApp, Telegram, SMS and email: find one by name, email or phone, update their name, tag them, set or clear their fields, read and set the bot's own fields, and send a contact an automation built in Manychat.

Actions

ActionWhat it does
Add tag to contactTag one contact.
Create bot fieldDefine a new account-wide variable the bot can read, optionally with a starting value.
Create contact fieldDefine a new field that every contact can hold a value for.
Create tagAdd a tag to the account so contacts can be segmented by it.
Delete tagDelete a tag from the whole account.
Find contact by email or phoneLook one contact up by their email address or their phone number - an exact match, not a search.
Find contacts by nameSearch the account's contacts by full name.
Get account detailsThe Manychat account this connection reaches: its name, username, category, avatar, timezone and whether it is on a Pro plan.
Get contactOne contact in full: names, channel handles and opt-ins for Instagram, Messenger, WhatsApp, SMS and email, when they last interacted, every tag they carry and every contact field's value.
List automationsEvery automation built in this Manychat account, with the folders they are filed in.
List bot fieldsEvery bot field on the account, with its current value.
List contact fieldsEvery contact field defined on the account, with its type.
List tagsEvery tag on the account, with the id each one is deleted by.
Remove tag from contactTake a tag off one contact.
Send automation to contactStart one of the account's automations for a contact.
Set bot fieldChange an account-wide bot field's value, choosing the field from a list.
Set bot field by nameChange an account-wide bot field's value, naming the field rather than picking its id.
Set contact fieldSet one contact field's value on one contact - the per-contact fields, not the bot's own - or clear it with 'Clear the value instead'.
Update contactChange a contact's first name, last name or gender.

Add tag to contact

Tag one contact. Manychat creates the tag on the account first if it does not have it, so this does not need 'Create tag' in front of it.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.
Tagtag_nametextRequired
The tag's name, as it appears in Manychat under Settings > Tags. Pick one from the list, or type a name - including one an earlier step in this workflow created, which the list will not have yet.

Outputs

addedtrue/false
Always true - Manychat reported no error
subscriber_idtext
The contact that was tagged
tag_nametext
The tag that was added
Example output
{
  "added": true,
  "subscriber_id": "987654321",
  "tag_name": "VIP"
}

Create bot field

Define a new account-wide variable the bot can read, optionally with a starting value. As with a contact field, the type is fixed at creation.

Inputs

Field namenametextRequired
What to call the bot field.
Field typefield_typetextRequired
What the field holds. This is fixed when the field is created and decides what its value has to look like: a date field takes 2026-09-14, a date-and-time field takes a full timestamp.One of: text, number, date, datetime (Date and time), boolean (True or false). Default: text.
Descriptiondescriptiontext
An optional note about what the field is for, shown beside it in Manychat.
Starting valuevaluetext
An optional first value. It must suit the type chosen above; leave it empty to create the field unset.

Outputs

bot_fieldobject
The bot field that was created
Example output
{
  "bot_field": {
    "description": "The code the bot quotes",
    "id": 66301,
    "name": "Current promotion",
    "type": "text",
    "value": "SPRING25"
  }
}

Create contact field

Define a new field that every contact can hold a value for. The type is fixed at creation and decides what values the field accepts afterwards, so pick it deliberately: Manychat offers no way to change it later.

Inputs

Field namecaptiontextRequired
What to call the field. Manychat calls this the caption when the field is created and the name everywhere afterwards.
Field typefield_typetextRequired
What the field holds. This is fixed when the field is created and decides what its value has to look like: a date field takes 2026-09-14, a date-and-time field takes a full timestamp.One of: text, number, date, datetime (Date and time), boolean (True or false). Default: text.
Descriptiondescriptiontext
An optional note about what the field is for, shown beside it in Manychat.

Outputs

custom_fieldobject
The contact field that was created
Example output
{
  "custom_field": {
    "description": "What this contact usually orders",
    "id": 55201,
    "name": "Favourite roast",
    "type": "text"
  }
}

Create tag

Add a tag to the account so contacts can be segmented by it. Returns the new tag with the id every other tag action uses. Tagging a contact does not need this first: 'Add tag to contact' creates the tag if the account does not have it.

Inputs

Tag namenametextRequired
What to call the tag. This is what appears in Manychat under Settings > Tags.

Outputs

tagobject
The tag that was created
Example output
{
  "tag": {
    "id": 44101,
    "name": "Newsletter"
  }
}

Delete tag

Delete a tag from the whole account. Manychat also strips it from every contact carrying it, and this cannot be undone. To untag one contact and leave the tag alone, use 'Remove tag from contact' instead.

Inputs

Tagtag_idtextRequired
The tag to delete, picked from the account's tags. A tag id from an earlier step can be typed in instead.

Outputs

deletedtrue/false
Always true - Manychat reported no error
tag_idnumber
The tag that was deleted
Example output
{
  "deleted": true,
  "tag_id": 44102
}

Find contact by email or phone

Look one contact up by their email address or their phone number - an exact match, not a search. Set one of the two, not both. Nothing matching is an answer rather than a failure: 'found' comes back false and the workflow can branch on it.

Inputs

Email addressemailtext
The contact's email address. Leave empty if searching by phone number.
Phone numberphonetext
The contact's phone number. Leave empty if searching by email address.

Outputs

foundtrue/false
Whether a contact matched
subscriberobject
The contact, or empty when none matched
Example output
{
  "found": true,
  "subscriber": {
    "custom_fields": [
      {
        "description": "What this contact usually orders",
        "id": 55201,
        "name": "Favourite roast",
        "type": "text",
        "value": "Ethiopian"
      }
    ],
    "email": "ada@example.com",
    "first_name": "Ada",
    "gender": "female",
    "id": "987654321",
    "ig_id": 6384638,
    "ig_username": "ada.lovelace",
    "is_followup_enabled": true,
    "language": "en",
    "last_input_text": "When do you open?",
    "last_interaction": "2026-09-13T17:42:00+01:00",
    "last_name": "Lovelace",
    "last_seen": "2026-09-13T17:42:00+01:00",
    "live_chat_url": "https://app.manychat.com/fb1234567890/chat/987654321",
    "locale": "en_GB",
    "name": "Ada Lovelace",
    "optin_email": true,
    "optin_phone": false,
    "optin_whatsapp": false,
    "page_id": "1234567890",
    "phone": "",
    "profile_pic": "https://scontent.example.com/ada.jpg",
    "subscribed": "2026-02-01T09:15:00+01:00",
    "tags": [
      {
        "id": 44101,
        "name": "Newsletter"
      }
    ],
    "timezone": "UTC+01:00",
    "user_refs": [],
    "whatsapp_bsuid": null,
    "whatsapp_phone": "",
    "whatsapp_username": null
  }
}

Find contacts by name

Search the account's contacts by full name. Manychat caps this at 100 results and offers no second page, so a search that hits the cap is reported as such rather than pretending to be complete. For an exact match, use 'Find contact by email or phone'.

Inputs

Full namenametextRequired
The name to search for. Manychat matches against a contact's full name, so 'Ada Lovelace' rather than 'Ada'.

Outputs

countnumber
How many contacts matched
limit_reachedtrue/false
True when the cap was hit, meaning matches were dropped
result_limitnumber
The most Manychat will return from this search (100)
subscriberslist
The contacts that matched
Example output
{
  "count": 1,
  "limit_reached": false,
  "result_limit": 100,
  "subscribers": [
    {
      "custom_fields": [
        {
          "description": "What this contact usually orders",
          "id": 55201,
          "name": "Favourite roast",
          "type": "text",
          "value": "Ethiopian"
        }
      ],
      "email": "ada@example.com",
      "first_name": "Ada",
      "gender": "female",
      "id": "987654321",
      "ig_id": 6384638,
      "ig_username": "ada.lovelace",
      "is_followup_enabled": true,
      "language": "en",
      "last_input_text": "When do you open?",
      "last_interaction": "2026-09-13T17:42:00+01:00",
      "last_name": "Lovelace",
      "last_seen": "2026-09-13T17:42:00+01:00",
      "live_chat_url": "https://app.manychat.com/fb1234567890/chat/987654321",
      "locale": "en_GB",
      "name": "Ada Lovelace",
      "optin_email": true,
      "optin_phone": false,
      "optin_whatsapp": false,
      "page_id": "1234567890",
      "phone": "",
      "profile_pic": "https://scontent.example.com/ada.jpg",
      "subscribed": "2026-02-01T09:15:00+01:00",
      "tags": [
        {
          "id": 44101,
          "name": "Newsletter"
        }
      ],
      "timezone": "UTC+01:00",
      "user_refs": [],
      "whatsapp_bsuid": null,
      "whatsapp_phone": "",
      "whatsapp_username": null
    }
  ]
}

Get account details

The Manychat account this connection reaches: its name, username, category, avatar, timezone and whether it is on a Pro plan. The cheapest way to confirm a connection is alive, and the way to tell which of several Manychat accounts a workflow is pointed at - an API key belongs to exactly one.

Inputs

None.

Outputs

pageobject
The connected Manychat account
Example output
{
  "page": {
    "about": "Small-batch roasters.",
    "avatar_link": "https://scontent.example.com/northwind.jpg",
    "category": "Coffee shop",
    "description": "Order updates and offers.",
    "id": 1234567890,
    "is_pro": true,
    "name": "Northwind Coffee",
    "timezone": "UTC+01:00",
    "username": "northwindcoffee"
  }
}

Get contact

One contact in full: names, channel handles and opt-ins for Instagram, Messenger, WhatsApp, SMS and email, when they last interacted, every tag they carry and every contact field's value.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.

Outputs

subscriberobject
The contact
Example output
{
  "subscriber": {
    "custom_fields": [
      {
        "description": "What this contact usually orders",
        "id": 55201,
        "name": "Favourite roast",
        "type": "text",
        "value": "Ethiopian"
      }
    ],
    "email": "ada@example.com",
    "first_name": "Ada",
    "gender": "female",
    "id": "987654321",
    "ig_id": 6384638,
    "ig_username": "ada.lovelace",
    "is_followup_enabled": true,
    "language": "en",
    "last_input_text": "When do you open?",
    "last_interaction": "2026-09-13T17:42:00+01:00",
    "last_name": "Lovelace",
    "last_seen": "2026-09-13T17:42:00+01:00",
    "live_chat_url": "https://app.manychat.com/fb1234567890/chat/987654321",
    "locale": "en_GB",
    "name": "Ada Lovelace",
    "optin_email": true,
    "optin_phone": false,
    "optin_whatsapp": false,
    "page_id": "1234567890",
    "phone": "",
    "profile_pic": "https://scontent.example.com/ada.jpg",
    "subscribed": "2026-02-01T09:15:00+01:00",
    "tags": [
      {
        "id": 44101,
        "name": "Newsletter"
      }
    ],
    "timezone": "UTC+01:00",
    "user_refs": [],
    "whatsapp_bsuid": null,
    "whatsapp_phone": "",
    "whatsapp_username": null
  }
}

List automations

Every automation built in this Manychat account, with the folders they are filed in. The 'ns' of an automation is the only identifier 'Send automation' accepts, and this is where it comes from.

Inputs

None.

Outputs

countnumber
How many automations the account has
flowslist
Every automation, each with the 'ns' that names it
folder_countnumber
How many folders they are filed in
folderslist
The folders the automations are filed in
Example output
{
  "count": 2,
  "flows": [
    {
      "folder_id": 77401,
      "name": "Welcome sequence",
      "ns": "content20260201120000_123456"
    },
    {
      "folder_id": 77401,
      "name": "Abandoned cart",
      "ns": "content20260210093000_123457"
    }
  ],
  "folder_count": 1,
  "folders": [
    {
      "id": 77401,
      "name": "Onboarding",
      "parent_id": 0
    }
  ]
}

List bot fields

Every bot field on the account, with its current value. A bot field is one value for the whole bot - today's promo code, whether the shop is open - unlike a contact field, which holds a value per contact.

Inputs

None.

Outputs

bot_fieldslist
Every bot field on the account, with its current value
countnumber
How many bot fields the account has
Example output
{
  "bot_fields": [
    {
      "description": "The code the bot quotes",
      "id": 66301,
      "name": "Current promotion",
      "type": "text",
      "value": "SPRING25"
    },
    {
      "description": "Whether the shop is taking orders",
      "id": 66302,
      "name": "Shop open",
      "type": "boolean",
      "value": true
    }
  ],
  "count": 2
}

List contact fields

Every contact field defined on the account, with its type. A contact field holds a different value for each contact - 'Favourite roast', 'Last order date'. For the bot's own account-wide variables, use 'List bot fields'.

Inputs

None.

Outputs

countnumber
How many contact fields the account has
custom_fieldslist
Every contact field on the account
Example output
{
  "count": 2,
  "custom_fields": [
    {
      "description": "What this contact usually orders",
      "id": 55201,
      "name": "Favourite roast",
      "type": "text"
    },
    {
      "description": "When they last ordered",
      "id": 55202,
      "name": "Last order date",
      "type": "date"
    }
  ]
}

List tags

Every tag on the account, with the id each one is deleted by. Manychat returns the whole list in one call - there is no page two - so the count is the account's total.

Inputs

None.

Outputs

countnumber
How many tags the account has
tagslist
Every tag on the account
Example output
{
  "count": 2,
  "tags": [
    {
      "id": 44101,
      "name": "Newsletter"
    },
    {
      "id": 44102,
      "name": "VIP"
    }
  ]
}

Remove tag from contact

Take a tag off one contact. The tag itself stays on the account and every other contact keeps it - 'Delete tag' is the one that removes it everywhere.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.
Tagtag_nametextRequired
The tag's name, as it appears in Manychat under Settings > Tags. Pick one from the list, or type a name - including one an earlier step in this workflow created, which the list will not have yet.

Outputs

removedtrue/false
Always true - Manychat reported no error
subscriber_idtext
The contact the tag was taken off
tag_nametext
The tag that was removed
Example output
{
  "removed": true,
  "subscriber_id": "987654321",
  "tag_name": "VIP"
}

Send automation to contact

Start one of the account's automations for a contact. This is how a workflow messages someone through Manychat: the automation was built in Manychat, so Manychat applies its own sending rules and channel choice to it. Manychat allows 100 sends per contact per hour.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.
Automationflow_nstextRequired
The automation to send, picked from the account's automations. Nothing here creates one, so the list is complete - build the automation in Manychat first if it is not there.

Outputs

flow_nstext
The automation that was sent
senttrue/false
Always true - Manychat reported no error
subscriber_idtext
The contact it was sent to
Example output
{
  "flow_ns": "content20260201120000_123456",
  "sent": true,
  "subscriber_id": "987654321"
}

Set bot field

Change an account-wide bot field's value, choosing the field from a list. Use 'Set bot field by name' instead when the field is named by an earlier step rather than picked here.

Inputs

Bot fieldfield_idtextRequired
The bot field to set, picked from the account's fields. A field id from an earlier step can be typed in instead.
Valuefield_valuetextRequired
The value to store. Text, a number or true/false is stored as it stands; a date or date-and-time carried over from an earlier step is converted to the format Manychat expects. It must suit the field's type - Manychat refuses a word in a number field.

Outputs

field_idnumber
The bot field that was set
field_value
The value as it was sent to Manychat
updatedtrue/false
Always true - Manychat reported no error
Example output
{
  "field_id": 66301,
  "field_value": "SPRING25",
  "updated": true
}

Set bot field by name

Change an account-wide bot field's value, naming the field rather than picking its id. Saves a lookup step when the field's name is known or comes out of an earlier step.

Inputs

Bot fieldfield_nametextRequired
The bot field's name. Pick one from the list, or type a name - including one an earlier step in this workflow created, which the list will not have yet.
Valuefield_valuetextRequired
The value to store. Text, a number or true/false is stored as it stands; a date or date-and-time carried over from an earlier step is converted to the format Manychat expects. It must suit the field's type - Manychat refuses a word in a number field.

Outputs

field_nametext
The bot field that was set
field_value
The value as it was sent to Manychat
updatedtrue/false
Always true - Manychat reported no error
Example output
{
  "field_name": "Current promotion",
  "field_value": "SPRING25",
  "updated": true
}

Set contact field

Set one contact field's value on one contact - the per-contact fields, not the bot's own - or clear it with 'Clear the value instead'. The field must already exist on the account; 'Create contact field' adds one. Manychat matches the field name without regard to case.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.
Contact fieldfield_nametextRequired
The contact field's name. Pick one from the list, or type a name - including one an earlier step in this workflow created, which the list will not have yet.
Valuefield_valuetext
The value to store. Text, a number or true/false is stored as it stands; a date or date-and-time carried over from an earlier step is converted to the format Manychat expects. Required unless 'Clear the value instead' is on.
Clear the value insteadclear_valuetrue/false
Turn on to empty this contact's value for the field rather than set one, and leave Value empty. An empty Value on its own never clears a field - it is refused - so a value that is missing by mistake cannot wipe a contact's data.

Outputs

clearedtrue/false
True when the field was emptied rather than set
field_nametext
The contact field that was set
field_value
The value as it was sent to Manychat - empty when the field was cleared
subscriber_idtext
The contact whose field was set
updatedtrue/false
Always true - Manychat reported no error
Example output
{
  "cleared": false,
  "field_name": "Favourite roast",
  "field_value": "Ethiopian",
  "subscriber_id": "987654321",
  "updated": true
}

Update contact

Change a contact's first name, last name or gender. Only the fields filled in here are sent; the rest are left alone. Email, phone and opt-ins are not offered: Manychat treats writing them onto a contact as an import, which needs an account permission ('Import Contacts') that Manychat support grants by hand and never during a trial.

Inputs

Contact IDsubscriber_idtextRequired
The contact to act on. Manychat shows the id on a contact card under Contacts, and every contact action here returns it as 'id'. A contact exists only once someone has messaged the bot - this integration cannot create one. Contacts are not offered as a list because an account has as many as it has ever talked to - use 'Find contacts by name' or 'Find contact by email or phone' to get one.
First namefirst_nametext
Leave empty to keep the current first name.
Last namelast_nametext
Leave empty to keep the current last name.
Gendergendertext
Free text. Manychat documents no list of accepted values, so whatever is sent is what is stored. Leave empty to keep the current value.

Outputs

subscriberobject
The updated contact
Example output
{
  "subscriber": {
    "custom_fields": [
      {
        "description": "What this contact usually orders",
        "id": 55201,
        "name": "Favourite roast",
        "type": "text",
        "value": "Ethiopian"
      }
    ],
    "email": "ada@example.com",
    "first_name": "Ada",
    "gender": "female",
    "id": "987654321",
    "ig_id": 6384638,
    "ig_username": "ada.lovelace",
    "is_followup_enabled": true,
    "language": "en",
    "last_input_text": "When do you open?",
    "last_interaction": "2026-09-13T17:42:00+01:00",
    "last_name": "Lovelace",
    "last_seen": "2026-09-13T17:42:00+01:00",
    "live_chat_url": "https://app.manychat.com/fb1234567890/chat/987654321",
    "locale": "en_GB",
    "name": "Ada Lovelace",
    "optin_email": true,
    "optin_phone": false,
    "optin_whatsapp": false,
    "page_id": "1234567890",
    "phone": "",
    "profile_pic": "https://scontent.example.com/ada.jpg",
    "subscribed": "2026-02-01T09:15:00+01:00",
    "tags": [
      {
        "id": 44101,
        "name": "Newsletter"
      }
    ],
    "timezone": "UTC+01:00",
    "user_refs": [],
    "whatsapp_bsuid": null,
    "whatsapp_phone": "",
    "whatsapp_username": null
  }
}

On this page