Intercom
Create contacts, send messages, and manage conversations in Intercom.
On this page
- Connect
- Call it from a workflow
- Actions (22)
- find-conversation
- send_message
- add-note-to-user
- add-or-remove-tag-on-company
- add-or-remove-tag-on-contact
- add-or-remove-tag-on-conversation
- addNoteToConversation
- assignConversationAction
- create-article
- create-conversation
- create-or-update-lead
- create-or-update-user
- create-ticket
- create-user
- custom_api_call
- find-company
- find-lead
- find-user
- get-conversation
- list-all-tags
- replyToConversation
- update-ticket
- Details
Connect
Auth type: OAuth (oauth2). Click Connect and approve access on the provider's page. Appbricx runs the OAuth flow (signed single-use state, PKCE where the provider supports it), stores the tokens encrypted and refreshes them before they expire.
OAuth needs an OAuth app: the platform's when the operator configured one, or your own (admin panel, Integrations, Configure). You can also bring your own credentials.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("intercom", "find-conversation", {
"searchField": "id",
"matchType": "contains",
"searchTerm": "<search term>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Intercom answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "intercom-find-conversation",
name: "Intercom: Find Conversation",
description: "Calls Intercom when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("intercom", {
"action": "find-conversation",
"searchField": "id",
"matchType": "contains",
"searchTerm": "<search term>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/intercom/find-conversation" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"searchField":"id","matchType":"contains","searchTerm":"<search term>"}}'Actions
find-conversationin catalog
Find Conversation. Searches for conversations using various criteria
Also accepted as findConversation.
| Input | Type | Description |
|---|---|---|
searchFieldrequired | one of "id" | "source.subject" | "source.body" | "source.author.email" | "admin_assignee_id" | "team_assignee_id" | "tag_ids" | Search Field |
matchTyperequired | one of "contains" | "equals" | "starts_with" | Match Type |
searchTermrequired | text | Search Term |
statusoptional | one of "open" | "closed" | Status |
updateAfteroptional | date-time (ISO) | Update After |
updateBeforeoptional | date-time (ISO) | Update Before |
send_messagein catalog
Send Message. Send a message to a contact (only allowed by admins)
| Input | Type | Description |
|---|---|---|
message_typerequired | one of "email" | "inapp" | Message Type |
email_required_fieldsrequired | object (depends on other props) | Email Required Fields |
fromrequired | id (picked from your account) | From (Admin) |
torequired | id (picked from your account) | To |
bodyrequired | text | Message Body |
create_conversation_without_contact_replyoptional | boolean | Whether a conversation should be opened in the inbox for the message without the contact replying. Defaults to false if not provided. |
add-note-to-user
Add Note. Add a note to a user
| Input | Type | Description |
|---|---|---|
emailrequired | text | |
bodyrequired | long text | Note Text |
add-or-remove-tag-on-company
Add/Remove Tag on Company. Attach or remove a tag from a specific company.
| Input | Type | Description |
|---|---|---|
companyIdrequired | id (picked from your account) | Company ID |
tagNamerequired | text | Tag Name |
untagoptional | boolean | Untag ? |
add-or-remove-tag-on-contact
Add/Remove Tag on Contact. Attach or remove a tag from a specific contact.
| Input | Type | Description |
|---|---|---|
contactIdrequired | id (picked from your account) | Contact ID |
tagIdrequired | id (picked from your account) | Tag Name |
untagoptional | boolean | Untag ? |
add-or-remove-tag-on-conversation
Add/Remove Tag on Conversation. Attach or remove a tag from a specific conversation.
| Input | Type | Description |
|---|---|---|
conversationIdrequired | id (picked from your account) | Conversation ID |
tagIdrequired | id (picked from your account) | Tag |
untagoptional | boolean | Untag ? |
addNoteToConversation
Add note to conversation. Add a note (for other admins) to an existing conversation
| Input | Type | Description |
|---|---|---|
fromrequired | id (picked from your account) | From (Admin) |
conversationIdrequired | id (picked from your account) | Conversation ID |
bodyrequired | text | Message Body |
assignConversationAction
Assign conversation to an admin or a team. (Re)assign conversation to a specific admin or team.
| Input | Type | Description |
|---|---|---|
fromrequired | id (picked from your account) | From (Admin) |
conversationIdrequired | id (picked from your account) | Conversation ID |
assigneeIdrequired | text | The ID of the admin or team to assign this conversation to |
bodyoptional | text | Message Body |
create-article
Create Article. Creates a new article in your Help Center.
| Input | Type | Description |
|---|---|---|
titlerequired | long text | Title |
descriptionoptional | text | Description |
bodyoptional | long text | Body |
authorIdrequired | id (picked from your account) | Author |
staterequired | one of "draft" | "published" | State |
collectionIdoptional | id (picked from your account) | Parent Collection |
create-conversation
Create Conversation. Creates a new conversation from a contact.
| Input | Type | Description |
|---|---|---|
contactTyperequired | one of "user" | "lead" | Contact Type |
contactIdrequired | id (picked from your account) | Contact ID |
bodyrequired | long text | Message Body |
create-or-update-lead
Create or Update Lead. Create or update an Intercom lead.If an ID is provided, the lead will be updated.
| Input | Type | Description |
|---|---|---|
leadIdoptional | text | Lead ID |
nameoptional | text | Full Name |
emailoptional | text | |
phoneoptional | text | Phone |
unsubscribeoptional | boolean | Unsubscribed From Emails |
createdAtoptional | date-time (ISO) | Created At |
customAttributesoptional | object | Custom Attributes |
create-or-update-user
Create/Update User. Update a user within intercom given an email address.
| Input | Type | Description |
|---|---|---|
emailrequired | text | Lookup Email |
nameoptional | text | Full Name |
userIdoptional | text | User ID |
phoneoptional | text | Phone |
createdAtoptional | date-time (ISO) | Created At |
customAttributesoptional | object | Custom Attributes |
create-ticket
Create Ticket. Creates a new ticket.
| Input | Type | Description |
|---|---|---|
ticketTypeIdrequired | id (picked from your account) | Ticket Type |
contactIdrequired | id (picked from your account) | Contact ID |
companyIdoptional | id (picked from your account) | Company ID |
ticketPropertiesrequired | object (depends on other props) | Ticket Properties |
create-user
Create User. Creates a new user.
| Input | Type | Description |
|---|---|---|
emailrequired | text | |
createdAtoptional | date-time (ISO) | Created At |
userIdoptional | text | User ID |
nameoptional | text | Full Name |
customAttributesoptional | object | Custom Attributes |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
find-company
Find Company. Finds an existing company.
| Input | Type | Description |
|---|---|---|
searchFieldrequired | one of "name" | "company_id" | Search Field |
searchValuerequired | text | Search Value |
find-lead
Find Lead. Finds an existing lead.
| Input | Type | Description |
|---|---|---|
searchFieldrequired | one of "email" | "id" | "external_id" | Search Field |
searchValuerequired | text | Search Value |
find-user
Find User. Finds an existing user.
| Input | Type | Description |
|---|---|---|
searchFieldrequired | one of "email" | "id" | "external_id" | Search Field |
searchValuerequired | text | Search Value |
get-conversation
Retrieve a Conversation. Retrieves a specific conversation by ID.
| Input | Type | Description |
|---|---|---|
conversationIdrequired | id (picked from your account) | Conversation ID |
list-all-tags
List Tags. List all tags.
No input.
replyToConversation
Reply to conversation. Reply (as an admin) to a conversation with a contact
| Input | Type | Description |
|---|---|---|
fromrequired | id (picked from your account) | From (Admin) |
conversationIdrequired | id (picked from your account) | Conversation ID |
bodyrequired | text | Message Body |
update-ticket
Update Ticket. Updates an existing ticket.
| Input | Type | Description |
|---|---|---|
ticketTypeIdrequired | id (picked from your account) | Ticket Type |
ticketIdrequired | id (picked from your account) | Ticket |
ticketPropertiesrequired | object (depends on other props) | Ticket Properties |
isOpenoptional | boolean | Is Open |
stateoptional | one of "in_progress" | "waiting_on_customer" | "resolved" | State |
snoozedTilloptional | date-time (ISO) | Snoozed Until |
assignedAdminIdoptional | id (picked from your account) | Assigned Admin |
Details
- Id
intercom- Category
- Customer support
- Tags
- support, messaging, crm, live-chat
- Package
@activepieces/piece-intercom@0.7.0- Tier
- Community