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
| Action | What it does |
|---|---|
| Add tag to contact | Tag one contact. |
| Create bot field | Define a new account-wide variable the bot can read, optionally with a starting value. |
| Create contact field | Define a new field that every contact can hold a value for. |
| Create tag | Add a tag to the account so contacts can be segmented by it. |
| Delete tag | Delete a tag from the whole account. |
| Find contact by email or phone | Look one contact up by their email address or their phone number - an exact match, not a search. |
| Find contacts by name | Search the account's contacts by full name. |
| Get account details | The Manychat account this connection reaches: its name, username, category, avatar, timezone and whether it is on a Pro plan. |
| 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. |
| List automations | Every automation built in this Manychat account, with the folders they are filed in. |
| List bot fields | Every bot field on the account, with its current value. |
| List contact fields | Every contact field defined on the account, with its type. |
| List tags | Every tag on the account, with the id each one is deleted by. |
| Remove tag from contact | Take a tag off one contact. |
| Send automation to contact | Start one of the account's automations for a contact. |
| Set bot field | Change an account-wide bot field's value, choosing the field from a list. |
| Set bot field by name | Change an account-wide bot field's value, naming the field rather than picking its id. |
| 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'. |
| Update contact | Change 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 ID
subscriber_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.
- Tag
tag_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 name
nametextRequired - What to call the bot field.
- Field type
field_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. - Description
descriptiontext - An optional note about what the field is for, shown beside it in Manychat.
- Starting value
valuetext - 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 name
captiontextRequired - What to call the field. Manychat calls this the caption when the field is created and the name everywhere afterwards.
- Field type
field_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. - Description
descriptiontext - 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 name
nametextRequired - 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
- Tag
tag_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 address
emailtext - The contact's email address. Leave empty if searching by phone number.
- Phone number
phonetext - 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 name
nametextRequired - 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 ID
subscriber_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 ID
subscriber_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.
- Tag
tag_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 ID
subscriber_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.
- Automation
flow_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 field
field_idtextRequired - The bot field to set, picked from the account's fields. A field id from an earlier step can be typed in instead.
- Value
field_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 field
field_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.
- Value
field_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 ID
subscriber_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 field
field_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.
- Value
field_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 instead
clear_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 ID
subscriber_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 name
first_nametext - Leave empty to keep the current first name.
- Last name
last_nametext - Leave empty to keep the current last name.
- Gender
gendertext - 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
}
}