Intercom

Connect any messaging channel to Intercom for human/bot collaboration.

Supported features

  1. Intercom live chat channel
  2. 3rd party messaging channels (Messenger, Slack, Telegram, etc.)
  3. human.transfer and human.note
  4. Bot pausing/unpausing with note verification
  5. Respond as human agent
  6. Bot control via slash commands (in notes) to start flows
  7. User profile data syncing

📘

Connect any messaging channel to Intercom

You can use 1) Intercom's live chat on the web, or 2) any of Meya's supported messaging apps like Messenger, Kik, Slack, Telegram, etc.

Install instructions

On Intercom

  1. Sign up for Intercom
  2. Create a user that will act as your bot (this can be a new user or someone else on your team)

On Meya:

  1. Authorize your Meya account to use your Intercom account (click "Connect" button)
  2. Select the admin that will be acting as your bot (the Intercom team member you previously created)

📘

Tip

Use an Intercom TEST app while your bot is still in development. See Intercom's docs on how to setup a test app.

User profile data

Intercom chat: Intercom -> Meya

If your user is connecting via Intercom's live chat web widget, Meya will pre-populate some user data accessible to your bot.

Field NameDescription
first_nameFirst name
last_nameLast name
emailEmail address

User scope data syncing: Meya -> Intercom

Your data stored in the user scope database will automatically be synced with your Intercom user profile. The special field "source" will include the messaging channel used (eg. "messenger" or "slack")

490

User scope data auto-synced to Intercom

Assigning the conversation to an agent

You can assign the conversation using the human.transfer component.

PropertyDescription
assigneeBy agent ID: assignee: "41400"
By agent name: assignee: "Elon Musk"
Random team: assignee: "team"
By team name: assignee: "team:Support"
Random agent: assignee: "admin"
Optional
textText to display to the user.Optional
notePrivate text only the agent will see. Markdown is supported.Optional

The five tabs in the code block below demonstrate different ways of assigning the chat using human.transfer.

states:
    transfer:
        component: human.transfer
        properties:
            text: "I'm getting an agent for you. This may take a few minutes."
            assignee: "Inigo Montoya"
            note: "The chat has been transferred to Inigo Montoya!"
states:
    transfer:
        component: human.transfer
        properties:
            text: "I'm getting an agent for you. This may take a few minutes."
            assignee: 41400
            note: "The chat has been transferred to you!"
states:
    transfer:
        component: human.transfer
        properties:
            text: "I'm getting an agent for you. This may take a few minutes."
            assignee: "team"
            note: "The chat has been transferred to your team!"
states:
    transfer:
        component: human.transfer
        properties:
            text: "I'm getting an agent for you. This may take a few minutes."
            assignee: "team:Success"
            note: "The chat has been transferred to the Success team!"
states:
    transfer:
        component: human.transfer
        properties:
            text: "I'm getting an agent for you. This may take a few minutes."
            assignee: admin
            note: "The chat has been transferred to you!"

When assigning the conversation to a human teammate or team, the bot will pause itself and leave a note confirming that it's been paused. Conversely, if you assign the conversation to the bot agent or "Nobody" the bot will unpause.

1026

Pausing the bot by assigning to a human.

Settings

From your Intercom integration you can adjust the default assignment behaviors:

Bot response rules

  1. Silence on human assignment: Silence bot once assigned to teammate or team.
  2. Silence when unassigned: Silence bot when conversation is unassigned to "Nobody".

Assignment actions

  1. Cancel active flows: Cancel active flows when assigned to an agent. If this is turned off, users can resume existing flows once agent has assigned back to bot default: on
  2. Send notes: Send a note "Bot is paused" or "Bot is active" when the conversation is assigned. default: off
886

Intercom settings

👍

Tip: pair bot silencing with Intercom Resolve Rules

It's possible to have the bot conditionally respond based on Intercom rules: 1) silence the bot when unassigned or assigned to a human. 2) add one or more rules that automatically assign the conversation to the bot based on user attributes.

2150

You can have the bot selectively respond when pairing with Intercom Resolve rules and Bot silencing

Slash commands

Agents can initiate bot flow by using "slash commands" within the note section. For example, by entering "/hello_world" in the note section, the bot will:

  1. unpause and assign the conversation to itself
  2. start the flow named "hello_world"
  3. leave a note confirming the flow has started
1210

Control your bot via /slash command notes

🚧

Missing flows

If no Meya flow exists matching the Slash command the bot will leave a note "❌ Error: Flow not found."

Respond as agent

Your customer agents can respond to your users for both Intercom live chat and any of Meya's messaging channels.

When responding to third party messaging channels, your users may not know when a human vs. a bot is speaking. Depending on your use-case you may want to have your human agents identify themselves by name in text.

994

Agent's can respond to any messaging channel.

918

In Messenger, the agent text will be indistinguishable from bot text.

Timeout error

If the Intercom API is slow to respond, you may get a SoftTimeLimitExceeded error.

962

A SoftTimeLimitExceeded error.

These errors appear when the Intercom API doesn't respond within 3 seconds. If this happens regularly, you may request an increased timeout limit by contacting [email protected]. Note that your request may not be approved.