Intercom ACTION
Manage A Conversation
Close, snooze, open, or assign a conversation by its ID. Which of the optional props apply depends on Message Type:
close uses Body, snoozed uses Snoozed Until, assignment uses Type together with Assignee ID or Team Assignee ID, and open uses none of them. Example: set Conversation ID to 192783634529321, Message Type to close, and Body to Issue resolved to close that conversation with a closing comment. See the documentation.- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Intercom account once, then configure and run Manage A Conversation from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "intercom-manage-conversation",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
intercom: { authProvisionId: "apn_xxxxxxx" },
conversationId: "Conversation ID",
messageType: "Message Type",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "intercom-manage-conversation",
"configured_props": {
"intercom": { "authProvisionId": "apn_xxxxxxx" },
"conversationId": "Conversation ID",
"messageType": "Message Type"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "intercom",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "intercom-manage-conversation",
arguments: {
conversationId: "Conversation ID",
messageType: "Message Type",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
conversationId Conversation ID | string | The Intercom provisioned identifier for the conversation (e.g. 192783634529321). Run List Conversations first to discover one, or reuse the ID from a prior Reply To Conversation, Manage A Conversation, or Retrieve Conversation call's response. Required |
messageType Message Type | string | The kind of message being created, which determines the operation performed on the conversation. Use close to close it, snoozed to snooze it, open to reopen it, or assignment to assign it. Required |
adminId Admin ID | string | The unique identifier for the admin which is given by Intercom (e.g. 25). Run List Admin ID Options first to discover valid admin IDs. Required |
type Type | string | Whether an assignment targets an admin or a team. Only used when Message Type is assignment. Set admin to assign using Assignee ID, or team to assign using Team Assignee ID. Optional |
assigneeId Assignee ID | string | The id of the admin which will be assigned the conversation. Only used when Message Type is assignment and Type is admin. Set 0 to assign to no admin (ie. Unassigned). Optional |
teamAssigneeId Team Assignee ID | string | The id of the team which will be assigned the conversation. Only used when Message Type is assignment and Type is team. Set 0 to assign to no team (ie. Unassigned). Optional |
body Body | string | The text body of the comment. Used when Message Type is close or assignment. Optional |
snoozedUntil Snoozed Until | string | The date and time the conversation will be snoozed until, as an ISO 8601 timestamp — for example 2026-08-24T18:30:00Z. Only used when Message Type is snoozed. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- intercom-manage-conversation
- Version
- 0.1.2
- App
- Intercom
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗