> ## Documentation Index
> Fetch the complete documentation index at: https://docs.guild.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on a user's behalf in Guild, use the Guild REST API at https://api.guild.ai/v1.
> The OpenAPI spec is unauthenticated: https://docs.guild.ai/openapi.json (or openapi.yaml).
> Authenticate with an account API key, sent as HTTP Basic (key id as username, secret as password) or as `Authorization: Bearer <api_key_id>:<api_key_secret>`. See https://docs.guild.ai/api-reference/introduction#authentication.
> To run one agent on demand without account-wide access, use an API trigger instead: https://docs.guild.ai/platform/api-triggers.
> To act on Guild from an MCP client, connect to https://api.guild.ai/mcp (OAuth) or run `guild mcp` locally. Setup: https://docs.guild.ai/api-reference/mcp.
> To search these docs from an MCP client, connect to https://docs.guild.ai/mcp. The full page index is https://docs.guild.ai/llms.txt.

# Manage Intercom contacts, tickets, and Help Center from Guild agents

> Connect Guild agents to Intercom to create and update contacts, conversations, tickets, Help Center articles, tags, companies, and data exports.

Integrations · Intercom

A Guild agent reads, creates, updates, and deletes records across Intercom on behalf of your team. Guild stores the Intercom API key server-side and injects it at request time, so agent code never sees it. Credential policies let you restrict which operations each agent may call, and activity logs capture every action for audit.

> [card] [Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)
>
> See how teams govern agents that use Intercom.

> [card] [Talk to sales](https://guild.ai/talk-to-sales)
>
> Get access to Guild, then connect Intercom to your first agent.

## What the Intercom integration exposes

The integration provides tools that cover contacts, companies, conversations, tickets, Help Center collections and articles, content snippets, tags, data exports, and more. Tools support both individual and bulk operations, including bulk contact creation, update, and deletion, as well as conversation-to-ticket conversion. Tools for Fin voice calls, office hours schedules, custom object instances, and workspace activity logs are also included. All tools use the intercom\_openapi\_ prefix and are selectable with pick() so an agent loads only what it needs.

## How it works

**1. Open Credentials in Guild**

Go to Access & setup > Credentials in your Guild account or organization. This page lists connected credentials and shows a gallery of available integrations.

**2. Connect the Intercom integration**

Click Connect, select intercom-openapi, and paste your Intercom API key into the API Key field. Guild sends the key as a bearer token in the Authorization header on every request.

**3. Import tools into your agent**

Import IntercomOpenapiTools from the guildai\~intercom-openapi package and spread it into your agent's tools object. Use pick() to include only the specific tools your agent requires.

## Why Intercom access needs governing

Intercom holds customer contact records, support conversations, and ticket data. An agent with unrestricted access could delete contacts, purge tickets, or export bulk data without review. Guild credential policies let you write ALLOW and DENY rules that the credential proxy enforces before any request leaves Guild. You can restrict an agent to read-only operations using a methods: GET resource constraint, block destructive operations such as delete\_contact or delete\_ticket by name or wildcard pattern, and scope rules to a specific agent or workspace so one agent's permissions do not bleed into another's.

Guild stores the Intercom API key server-side and injects it only after the policy check passes. Agent code, prompts, and containers never receive the key. You can scope a credential to a single workspace, a single member, or a single agent, and the workspace settings page lets you restrict a workspace to its own credentials so shared account credentials cannot be used there. The audit trail in Guild's activity log records each call, giving you a durable record without any extra instrumentation.

## About the Intercom integration

Agents can create, update, and delete contacts, companies, conversations, and tickets in Intercom. They can manage Help Center articles, collections, and content snippets, as well as apply tags and handle data exports. The integration also supports bulk contact operations and conversation-to-ticket conversion. The integration is `guildai~intercom-openapi`.

## Authentication

* **Type:** API key
* **Header:** Guild sends the key as a bearer token in the `Authorization` header

### Setup

**1. Connect Intercom**

In Guild, go to **Access & setup > Credentials**, click **Connect**, select **intercom-openapi**, and paste the key into **API Key**.

See [Credentials](https://docs.guild.ai/platform/credentials.md) for workspace, member, and agent-scoped credentials.

## Usage

```typescript theme={null}
import { IntercomOpenapiTools } from "@guildai-services/guildai~intercom-openapi"
import { llmAgent } from "@guildai/agents-sdk"

export default llmAgent({
  systemPrompt: "You work with Intercom.",
  tools: { ...IntercomOpenapiTools },
})
```

### Selecting specific tools

Tools are named with the `intercom_openapi_` prefix. Use [`pick()`](https://docs.guild.ai/sdk/tools#selecting-specific-tools) to include only what your agent needs.

## Tools

Tools in the latest published version of `guildai~intercom-openapi`:

> [accordion] All 258 tools
>
> | Tool | What it does |
> | - | - |
> | `intercom_openapi_archive_contact` | You can archive a single contact. |
> | `intercom_openapi_ask_fin` | Ask Fin a single, self-contained question and receive one informational answer. |
> | `intercom_openapi_attach_contact_to_a_company` | You can attach a company to a single contact. |
> | `intercom_openapi_attach_contact_to_conversation` | You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. |
> | `intercom_openapi_attach_subscription_type_to_contact` | You can add a specific subscription to a contact. |
> | `intercom_openapi_attach_tag_to_article` | Apply an existing tag to an article. |
> | `intercom_openapi_attach_tag_to_contact` | You can tag a specific contact. |
> | `intercom_openapi_attach_tag_to_content_snippet` | Apply an existing tag to a content snippet. |
> | `intercom_openapi_attach_tag_to_conversation` | You can tag a specific conversation. |
> | `intercom_openapi_attach_tag_to_internal_article` | Apply an existing tag to an internal article. |
> | `intercom_openapi_attach_tag_to_ticket` | You can tag a specific ticket. |
> | `intercom_openapi_block_contact` | Block a single contact. |
> | `intercom_openapi_bulk_content_actions` | Asynchronously run a bulk action over up to 1,000 Knowledge Hub content items. |
> | `intercom_openapi_bulk_create_contacts` | You can bulk create contacts by submitting an array of contact objects. |
> | `intercom_openapi_bulk_delete_contacts` | You can delete contacts in bulk by submitting an array of contact `id`s. |
> | `intercom_openapi_bulk_update_contacts` | You can bulk update contacts by submitting an array of contact objects with the fields to update. |
> | `intercom_openapi_cancel_data_export` | You can cancel your job. |
> | `intercom_openapi_change_ticket_type` | You can change the type of a ticket. |
> | `intercom_openapi_collect_fin_voice_call_by_external_id` | Retrieve information about a Fin Voice call using the external call identifier. |
> | `intercom_openapi_collect_fin_voice_call_by_id` | Retrieve information about a Fin Voice call using the external reference ID. |
> | `intercom_openapi_collect_fin_voice_call_by_phone_number` | Retrieve information about a Fin Voice call using the phone number. |
> | `intercom_openapi_collect_fin_voice_calls_by_conversation_id` | Retrieve information about Fin Voice calls associated with a conversation. |
> | `intercom_openapi_convert_conversation_to_ticket` | You can convert a conversation to a ticket. |
> | `intercom_openapi_convert_visitor` | You can merge a Visitor to a Contact of role type `lead` or `user`. |
> | `intercom_openapi_create_article` | You can create a new article by making a POST request to `https://api.intercom.io/articles`. |
> | `intercom_openapi_create_audience` | You can create a new audience by making a POST request to `https://api.intercom.io/audiences`. |
> | `intercom_openapi_create_collection` | You can create a new collection by making a POST request to `https://api.intercom.io/help_center/collections`. |
> | `intercom_openapi_create_company_note` | You can add a note to a single company. |
> | `intercom_openapi_create_contact` | You can create a new contact (ie. user or lead). |
> | `intercom_openapi_create_content_import_source` | You can create a new content import source by sending a POST request to this endpoint. |
> | `intercom_openapi_create_content_snippet` | You can create a new content snippet. |
> | `intercom_openapi_create_conversation` | You can create a conversation that has been initiated by a contact (ie. user or lead). |
> | `intercom_openapi_create_conversation_attribute` | Create a new conversation attribute. |
> | `intercom_openapi_create_conversation_attribute_option` | Add a new option to a list-type conversation attribute. |
> | `intercom_openapi_create_custom_object_instances` | Create or update a custom object instance |
> | `intercom_openapi_create_data_attribute` | You can create a data attributes for a `contact` or a `company`. |
> | `intercom_openapi_create_data_connector` | Create a new data connector. |
> | `intercom_openapi_create_data_event` | You will need an Access Token that has write permissions to send Events. |
> | `intercom_openapi_create_data_export` | To create your export job, you need to send a `POST` request to the export endpoint `https://api.intercom.io/export/content/data`. |
> | `intercom_openapi_create_dynamic_content` | You can create dynamic content. |
> | `intercom_openapi_create_external_page` | You can create a new external page by sending a POST request to this endpoint. |
> | `intercom_openapi_create_folder` | You can create a new folder for organizing content by making a POST request to `https://api.intercom.io/folders`. |
> | `intercom_openapi_create_help_center_redirect` | You can create a new URL redirect by making a POST request to `https://api.intercom.io/help_center/help_centers/{help_center_id}/redirects`. |
> | `intercom_openapi_create_internal_article` | You can create a new internal article by making a POST request to `https://api.intercom.io/internal_articles`. |
> | `intercom_openapi_create_message` | You can create a message that has been initiated by an admin. |
> | `intercom_openapi_create_news_item` | You can create a news item |
> | `intercom_openapi_create_note` | You can add a note to a single contact. |
> | `intercom_openapi_create_office_hours_exception` | You can create an exception for an office hours schedule. |
> | `intercom_openapi_create_office_hours_schedule` | You can create a new office hours schedule for the workspace. |
> | `intercom_openapi_create_or_update_company` | You can create or update a company. |
> | `intercom_openapi_create_phone_switch` | You can use the API to deflect phone calls to the Intercom Messenger. |
> | `intercom_openapi_create_tag` | You can use this endpoint to perform the following operations. |
> | `intercom_openapi_create_ticket` | You can create a new ticket. |
> | `intercom_openapi_create_ticket_type` | You can create a new ticket type. > 📘 Creating ticket types. > > Every ticket type will be created with two default attributes: *default\_title* and *default\_description*. > For the `icon` propery… |
> | `intercom_openapi_create_ticket_type_attribute` | You can create a new attribute for a ticket type. |
> | `intercom_openapi_data_event_summaries` | Create event summaries for a user. |
> | `intercom_openapi_delete_article` | You can delete a single article by making a DELETE request to `https://api.intercom.io/articles/`. |
> | `intercom_openapi_delete_audience` | You can delete a single audience by making a DELETE request to `https://api.intercom.io/audiences/{id}`. |
> | `intercom_openapi_delete_collection` | You can delete a single collection by making a DELETE request to `https://api.intercom.io/help_center/collections/`. |
> | `intercom_openapi_delete_company` | Delete a single company. |
> | `intercom_openapi_delete_contact` | You can delete a single contact. |
> | `intercom_openapi_delete_content_import_source` | You can delete a content import source by making a DELETE request this endpoint. |
> | `intercom_openapi_delete_content_snippet` | You can delete a single content snippet by its id. |
> | `intercom_openapi_delete_conversation` | \{% admonition type="warning" name="Irreversible operation" %}. |
> | `intercom_openapi_delete_conversation_attribute` | Archive a conversation attribute (soft delete). |
> | `intercom_openapi_delete_conversation_attribute_option` | Archive a single option on a list-type conversation attribute (soft delete). |
> | `intercom_openapi_delete_custom_object_instances_by_external_id` | Delete a single Custom Object instance by external\_id. |
> | `intercom_openapi_delete_custom_object_instances_by_id` | Delete a single Custom Object instance using the Intercom defined id. |
> | `intercom_openapi_delete_data_connector` | Delete an existing data connector. |
> | `intercom_openapi_delete_dynamic_content` | You can delete a single dynamic content by its id. |
> | `intercom_openapi_delete_external_page` | Sending a DELETE request for an external page will remove it from the content library UI and from being used for AI answers. |
> | `intercom_openapi_delete_folder` | You can delete a folder (if it contains no content) by making a DELETE request to `https://api.intercom.io/folders/`. |
> | `intercom_openapi_delete_help_center_redirect` | You can delete a single redirect by making a DELETE request to `https://api.intercom.io/help_center/help_centers/{help_center_id}/redirects/{id}`. |
> | `intercom_openapi_delete_internal_article` | You can delete a single internal article by making a DELETE request to `https://api.intercom.io/internal_articles/`. |
> | `intercom_openapi_delete_news_item` | You can delete a single news item. |
> | `intercom_openapi_delete_note` | You can delete a single contact or company note. |
> | `intercom_openapi_delete_office_hours_exception` | You can delete a single office hours exception. |
> | `intercom_openapi_delete_office_hours_schedule` | You can delete a single office hours schedule. |
> | `intercom_openapi_delete_tag` | You can delete the details of tags that are on the workspace by passing in the id. |
> | `intercom_openapi_delete_ticket` | \{% admonition type="warning" name="Irreversible operation" %}. |
> | `intercom_openapi_detach_contact_from_a_company` | You can detach a company from a single contact. |
> | `intercom_openapi_detach_contact_from_conversation` | You can remove participants who are contacts from a group conversation, on behalf of an admin. |
> | `intercom_openapi_detach_subscription_type_to_contact` | You can remove a specific subscription from a contact. |
> | `intercom_openapi_detach_tag_from_article` | Remove a tag from an article. |
> | `intercom_openapi_detach_tag_from_contact` | You can remove tag from a specific contact. |
> | `intercom_openapi_detach_tag_from_content_snippet` | Remove a tag from a content snippet. |
> | `intercom_openapi_detach_tag_from_conversation` | You can remove tag from a specific conversation. |
> | `intercom_openapi_detach_tag_from_internal_article` | Remove a tag from an internal article. |
> | `intercom_openapi_detach_tag_from_ticket` | You can remove tag from a specific ticket. |
> | `intercom_openapi_dismiss_contact_banner` | Records that a contact has dismissed a banner. |
> | `intercom_openapi_download_data_export` | When a job has a status of complete, and thus a filled download\_url, you can download your data by hitting that provided URL, formatted like so: [https://api.intercom.io/download/content/data/xyz1234](https://api.intercom.io/download/content/data/xyz1234). |
> | `intercom_openapi_enqueue_create_ticket` | Enqueues ticket creation for asynchronous processing, returning if the job was enqueued successfully to be processed. |
> | `intercom_openapi_escalate_fin_conversation` | Hand a conversation off to a human teammate. |
> | `intercom_openapi_export_workflow` | Export a workflow configuration by its ID. |
> | `intercom_openapi_find_tag` | You can fetch the details of tags that are on the workspace by their id. |
> | `intercom_openapi_get_content_import_source` | You can retrieve a content import source. |
> | `intercom_openapi_get_content_snippet` | You can fetch a single content snippet by its id. |
> | `intercom_openapi_get_conversation_attribute` | Retrieve a single conversation attribute by ID. |
> | `intercom_openapi_get_custom_object_instances_by_id` | Fetch a Custom Object Instance by id. |
> | `intercom_openapi_get_data_export` | You can view the status of your job by sending a `GET` request to the URL `https://api.intercom.io/export/content/data/{job_identifier}` - the `{job_identifier}` is the value returned in the response… |
> | `intercom_openapi_get_dynamic_content` | You can fetch a single dynamic content by its id. |
> | `intercom_openapi_get_export_reporting_data_by_job_identifier` | Requires the `export_reporting_data` OAuth scope. |
> | `intercom_openapi_get_export_reporting_data_get_datasets` | Requires the `export_reporting_data` or `read_reporting_datasets` OAuth scope. |
> | `intercom_openapi_get_external_page` | You can retrieve an external page. |
> | `intercom_openapi_get_ip_allowlist` | Retrieve the current IP allowlist configuration for the workspace. |
> | `intercom_openapi_get_macro` | You can fetch a single macro (saved reply) by its ID. |
> | `intercom_openapi_get_office_hours_exception` | You can fetch the details of a single office hours exception. |
> | `intercom_openapi_get_office_hours_schedule` | You can fetch the details of a single office hours schedule. |
> | `intercom_openapi_get_subscription_type` | You can fetch the details of a single subscription type by making a GET request to `https://api.intercom.io/subscription_types/`. |
> | `intercom_openapi_get_team_metrics` | Returns real-time activity metrics for admins in the specified team. |
> | `intercom_openapi_get_ticket` | You can fetch the details of a single ticket. |
> | `intercom_openapi_get_ticket_type` | You can fetch the details of a single ticket type. |
> | `intercom_openapi_get_whats_app_message_status` | Retrieves statuses of messages sent from the Outbound module. |
> | `intercom_openapi_identify_admin` | You can view the currently authorised admin along with the embedded app object (a "workspace" in legacy terminology). |
> | `intercom_openapi_jobs_status` | Retrieve the status of job execution. |
> | `intercom_openapi_link_conversation_to_ticket` | Link a conversation to an existing tracker ticket. |
> | `intercom_openapi_lis_data_attributes` | You can fetch a list of all data attributes belonging to a workspace for contacts or companies. |
> | `intercom_openapi_lis_data_events` | The events belonging to a customer can be listed by sending a GET request to `https://api.intercom.io/events` with a user or lead identifier along with a `type` parameter. |
> | `intercom_openapi_list_activity_log_event_types` | You can get a list of all activity log event types. |
> | `intercom_openapi_list_activity_logs` | You can get a log of activities by all admins in an app. |
> | `intercom_openapi_list_admins` | You can fetch a list of admins for a given workspace. |
> | `intercom_openapi_list_all_collections` | You can fetch a list of all collections by making a GET request to `https://api.intercom.io/help_center/collections`. |
> | `intercom_openapi_list_all_companies` | You can list companies. |
> | `intercom_openapi_list_articles` | You can fetch a list of all articles by making a GET request to `https://api.intercom.io/articles`. |
> | `intercom_openapi_list_article_versions` | Fetch the version history of an article by making a GET request to `https://api.intercom.io/articles//versions`. |
> | `intercom_openapi_list_attached_contacts` | You can fetch a list of all contacts that belong to a company. |
> | `intercom_openapi_list_attached_segments_for_companies` | You can fetch a list of all segments that belong to a company. |
> | `intercom_openapi_list_audiences` | You can fetch a list of all audiences for the workspace. |
> | `intercom_openapi_list_away_status_reasons` | Returns a list of all away status reasons configured for the workspace, including deleted ones. |
> | `intercom_openapi_list_brands` | Retrieves all brands for the workspace, including the default brand. |
> | `intercom_openapi_list_calls` | Retrieve a paginated list of calls. |
> | `intercom_openapi_list_calls_with_transcripts` | Retrieve calls by a list of conversation ids and include transcripts when available. |
> | `intercom_openapi_list_companies_for_a_contact` | You can fetch a list of companies that are associated to a contact. |
> | `intercom_openapi_list_company_notes` | You can fetch a list of notes that are associated to a company. |
> | `intercom_openapi_list_contact_activities` | You can fetch a list of contact activity events for your workspace, such as when contacts are created, role updated, merged, or deleted. |
> | `intercom_openapi_list_contact_banners` | Returns the banners a contact currently matches, so you can display them on surfaces outside the Messenger (native mobile apps, kiosks, embedded tools). |
> | `intercom_openapi_list_contact_merge_history` | Retrieve the paginated list of contacts that have been merged into a given contact. |
> | `intercom_openapi_list_contacts` | You can fetch a list of all contacts (ie. users or leads) in your workspace. \{% admonition type="info" name="Merged contacts" %}. |
> | `intercom_openapi_list_content_import_sources` | You can retrieve a list of all content import sources for a workspace. |
> | `intercom_openapi_list_content_snippets` | You can fetch a list of all content snippets for a workspace. |
> | `intercom_openapi_list_conversation_attributes` | You can fetch a list of all conversation attributes for your workspace. |
> | `intercom_openapi_list_conversations` | You can fetch a list of all conversations. |
> | `intercom_openapi_list_custom_object_instances` | List instances of a custom object type. |
> | `intercom_openapi_list_data_connector_execution_results` | Retrieve paginated execution logs for a specific data connector. |
> | `intercom_openapi_list_data_connectors` | Returns a paginated list of all data connectors for the workspace, ordered by most recently updated first. |
> | `intercom_openapi_list_data_connector_versions` | Retrieve the version history of a data connector, newest first. |
> | `intercom_openapi_list_deleted_contacts` | Fetch a paginated list of the contacts in your workspace that are no longer active, so you can recover ones whose `id`, `email`, or `external_id` you no longer have and then permanently delete them. |
> | `intercom_openapi_list_deleted_conversation_ids` | List all deleted conversation IDs. |
> | `intercom_openapi_list_dynamic_contents` | You can fetch a list of all dynamic content for a workspace, most recently updated first. |
> | `intercom_openapi_list_emails` | Lists all sender email address settings for the workspace |
> | `intercom_openapi_list_external_pages` | You can retrieve a list of all external pages for a workspace. |
> | `intercom_openapi_list_fin_capabilities` | Return a machine-readable, per-user list of what Fin can do for a given end user, so an orchestrating agent can decide which endpoint to call. |
> | `intercom_openapi_list_folders` | You can fetch a list of all folders for organizing content by making a GET request to `https://api.intercom.io/folders`. |
> | `intercom_openapi_list_handling_events` | List all pause/resume events for a conversation. |
> | `intercom_openapi_list_help_center_redirects` | You can fetch a list of all URL redirects for a help center by making a GET request to `https://api.intercom.io/help_center/help_centers/{help_center_id}/redirects`. |
> | `intercom_openapi_list_help_centers` | You can list all Help Centers by making a GET request to `https://api.intercom.io/help_center/help_centers`. |
> | `intercom_openapi_list_hitl_events` | List the human-in-the-loop (HITL) events for a conversation. |
> | `intercom_openapi_list_internal_articles` | You can fetch a list of all internal articles by making a GET request to `https://api.intercom.io/internal_articles`. |
> | `intercom_openapi_list_live_newsfeed_items` | You can fetch a list of all news items that are live on a given newsfeed |
> | `intercom_openapi_list_macros` | You can fetch a list of all macros (saved replies) in your workspace for use in automating responses. |
> | `intercom_openapi_list_newsfeeds` | You can fetch a list of all newsfeeds |
> | `intercom_openapi_list_news_items` | You can fetch a list of all news items |
> | `intercom_openapi_list_notes` | You can fetch a list of notes that are associated to a contact. |
> | `intercom_openapi_list_office_hours_exceptions` | You can fetch a list of all exceptions for an office hours schedule, ordered by date with the earliest first. |
> | `intercom_openapi_list_office_hours_schedules` | You can fetch a list of all office hours schedules for the workspace. |
> | `intercom_openapi_list_segments` | You can fetch a list of all segments. |
> | `intercom_openapi_list_segments_for_a_contact` | You can fetch a list of segments that are associated to a contact. |
> | `intercom_openapi_list_side_conversations` | List side conversations for a given conversation. |
> | `intercom_openapi_list_subscriptions_for_a_contact` | You can fetch a list of subscription types that are attached to a contact. |
> | `intercom_openapi_list_subscription_types` | You can list all subscription types. |
> | `intercom_openapi_list_tags` | You can fetch a list of all tags for a given workspace. |
> | `intercom_openapi_list_tags_for_a_contact` | You can fetch a list of all tags that are attached to a specific contact. |
> | `intercom_openapi_list_teams` | This will return a list of team objects for the App. |
> | `intercom_openapi_list_ticket_states` | You can get a list of all ticket states for a workspace. |
> | `intercom_openapi_list_ticket_types` | You can get a list of all ticket types for a workspace. |
> | `intercom_openapi_manage_conversation` | For managing conversations you can: - Close a conversation - Snooze a conversation to reopen on a future date - Open a conversation which is `snoozed` or `closed` - Assign a conversation to an admin… |
> | `intercom_openapi_merge_contact` | You can merge a contact with a `role` of `lead` into a contact with a `role` of `user`. |
> | `intercom_openapi_merge_conversation` | Merge a secondary (source) conversation into a primary (target) conversation. |
> | `intercom_openapi_post_export_reporting_data_enqueue` | For the conversation dataset, from API version 2.16 this export returns all conversations, including those that never received a user reply. |
> | `intercom_openapi_preview_merge_contact` | Preview the result of merging one contact into another without applying the merge. |
> | `intercom_openapi_publish_article_draft` | Publish a staged draft by making a POST request to `https://api.intercom.io/articles//draft/publish`, promoting the draft content to live. |
> | `intercom_openapi_redact_conversation` | You can redact a conversation part or the source message of a conversation (as seen in the source object). |
> | `intercom_openapi_register_fin_voice_call` | Register a Fin Voice call with Intercom. |
> | `intercom_openapi_reply_conversation` | You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins. |
> | `intercom_openapi_reply_ticket` | You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins. |
> | `intercom_openapi_reply_to_fin` | Once Fin has returned a response to a user's message, its status will be `awaiting_user_reply`. |
> | `intercom_openapi_retrieve_a_company_by_id` | You can fetch a single company. |
> | `intercom_openapi_retrieve_admin` | You can retrieve the details of a single admin. |
> | `intercom_openapi_retrieve_article` | You can fetch the details of a single article by making a GET request to `https://api.intercom.io/articles/`. |
> | `intercom_openapi_retrieve_article_draft` | Fetch the staged draft of a published article by making a GET request to `https://api.intercom.io/articles//draft`. |
> | `intercom_openapi_retrieve_article_version` | Fetch a single prior version of an article, including its body content, by making a GET request to `https://api.intercom.io/articles//versions/`. |
> | `intercom_openapi_retrieve_audience` | You can fetch the details of a single audience by making a GET request to `https://api.intercom.io/audiences/{id}`. |
> | `intercom_openapi_retrieve_brand` | Fetches a specific brand by its unique identifier |
> | `intercom_openapi_retrieve_collection` | You can fetch the details of a single collection by making a GET request to `https://api.intercom.io/help_center/collections/`. |
> | `intercom_openapi_retrieve_company` | You can fetch a single company by passing in `company_id` or `name`. |
> | `intercom_openapi_retrieve_conversation` | You can fetch the details of a single conversation. |
> | `intercom_openapi_retrieve_data_connector` | You can retrieve the full detail of a single data connector by its ID. |
> | `intercom_openapi_retrieve_data_connector_version` | Retrieve a single version of a data connector, including the connector configuration as it was at that version. |
> | `intercom_openapi_retrieve_email` | Fetches a specific email setting by its unique identifier |
> | `intercom_openapi_retrieve_folder` | You can fetch the details of a single folder by making a GET request to `https://api.intercom.io/folders/`. |
> | `intercom_openapi_retrieve_help_center` | You can fetch the details of a single Help Center by making a GET request to `https://api.intercom.io/help_center/help_centers/`. |
> | `intercom_openapi_retrieve_help_center_redirect` | You can fetch the details of a single redirect by making a GET request to `https://api.intercom.io/help_center/help_centers/{help_center_id}/redirects/{id}`. |
> | `intercom_openapi_retrieve_internal_article` | You can fetch the details of a single internal article by making a GET request to `https://api.intercom.io/internal_articles/`. |
> | `intercom_openapi_retrieve_newsfeed` | You can fetch the details of a single newsfeed |
> | `intercom_openapi_retrieve_news_item` | You can fetch the details of a single news item. |
> | `intercom_openapi_retrieve_note` | You can fetch the details of a single note. |
> | `intercom_openapi_retrieve_segment` | You can fetch the details of a single segment. |
> | `intercom_openapi_retrieve_team` | You can fetch the details of a single team, containing an array of admins that belong to this team. |
> | `intercom_openapi_retrieve_visitor_with_user_id` | You can fetch the details of a single visitor. |
> | `intercom_openapi_retrieve_whats_app_message_status` | Retrieves the delivery status of a specific WhatsApp message by its message ID. |
> | `intercom_openapi_run_fin_procedure` | Deterministically run a specific procedure on a new conversation. |
> | `intercom_openapi_scroll_over_all_companies` | The `list all companies` functionality does not work well for huge datasets, and can result in errors and performance problems when paging deeply. |
> | `intercom_openapi_search_activity_logs` | Search and filter admin activity logs using a POST request with event type filter in the request body. |
> | `intercom_openapi_search_articles` | You can search for articles by making a GET request to `https://api.intercom.io/articles/search`. |
> | `intercom_openapi_search_companies` | You can search for companies by the value of their attributes in order to fetch exactly the companies you want. |
> | `intercom_openapi_search_contacts` | You can search for multiple contacts by the value of their attributes in order to fetch exactly who you want. |
> | `intercom_openapi_search_content` | Search the knowledge base contents — articles, snippets, external pages, uploaded files, and internal articles — using a keyword query. |
> | `intercom_openapi_search_conversations` | You can search for multiple conversations by the value of their attributes in order to fetch exactly which ones you want. |
> | `intercom_openapi_search_internal_articles` | You can search for internal articles by making a GET request to `https://api.intercom.io/internal_articles/search`. |
> | `intercom_openapi_search_tickets` | You can search for multiple tickets by the value of their attributes in order to fetch exactly which ones you want. |
> | `intercom_openapi_set_away_admin` | You can set an Admin as away for the Inbox. |
> | `intercom_openapi_show_bulk_update_contacts_job` | You can check the status of a bulk contact update job. |
> | `intercom_openapi_show_call` | Retrieve a single call by id. |
> | `intercom_openapi_show_call_recording` | Redirects to a signed URL for the call's recording if it exists. |
> | `intercom_openapi_show_call_transcript` | Returns the transcript for the specified call as a JSON array of turns. |
> | `intercom_openapi_show_contact` | You can fetch the details of a single contact. |
> | `intercom_openapi_show_contact_by_external_id` | You can fetch the details of a single contact by external ID. |
> | `intercom_openapi_show_data_connector_execution_result` | Retrieve details for a specific data connector execution result. |
> | `intercom_openapi_stage_article_draft` | Stage changes to a published article as a draft by making a PUT request to `https://api.intercom.io/articles//draft`. |
> | `intercom_openapi_start_fin_conversation` | Initialize Fin by passing it the user's message along with conversation history and user details. |
> | `intercom_openapi_submit_fin_csat` | Record a customer's satisfaction rating for a conversation, with an optional free-text remark. |
> | `intercom_openapi_unarchive_contact` | You can unarchive a single contact. |
> | `intercom_openapi_unlink_conversation_from_ticket` | Unlink a conversation (or converted customer ticket) from a tracker ticket it is currently linked to. |
> | `intercom_openapi_update_article` | You can update the details of a single article by making a PUT request to `https://api.intercom.io/articles/`. |
> | `intercom_openapi_update_audience` | You can update the details of a single audience by making a PUT request to `https://api.intercom.io/audiences/{id}`. |
> | `intercom_openapi_update_collection` | You can update the details of a single collection by making a PUT request to `https://api.intercom.io/help_center/collections/`. |
> | `intercom_openapi_update_company` | You can update a single company using the Intercom provisioned `id`. |
> | `intercom_openapi_update_contact` | You can update an existing contact (ie. user or lead). |
> | `intercom_openapi_update_content_import_source` | You can update an existing content import source. |
> | `intercom_openapi_update_content_snippet` | You can update an existing content snippet. |
> | `intercom_openapi_update_conversation` | You can update an existing conversation. |
> | `intercom_openapi_update_conversation_attribute` | Update an existing conversation attribute. |
> | `intercom_openapi_update_conversation_attribute_option` | Update the label of a single option on a list-type conversation attribute. |
> | `intercom_openapi_update_data_attribute` | You can update a data attribute. |
> | `intercom_openapi_update_data_connector` | Update an existing data connector. |
> | `intercom_openapi_update_data_connector_version` | Update the note on a data connector version. |
> | `intercom_openapi_update_dynamic_content` | You can update existing dynamic content. |
> | `intercom_openapi_update_external_page` | You can update an existing external page (if it was created via the API). |
> | `intercom_openapi_update_folder` | You can update a folder by making a PUT request to `https://api.intercom.io/folders/`. |
> | `intercom_openapi_update_internal_article` | You can update the details of a single internal article by making a PUT request to `https://api.intercom.io/internal_articles/`. |
> | `intercom_openapi_update_ip_allowlist` | Update the IP allowlist configuration for the workspace. |
> | `intercom_openapi_update_news_item` | You can update a news item. |
> | `intercom_openapi_update_office_hours_exception` | You can update an existing office hours exception. |
> | `intercom_openapi_update_office_hours_schedule` | You can update an existing office hours schedule. |
> | `intercom_openapi_update_ticket` | You can update a ticket. |
> | `intercom_openapi_update_ticket_type` | You can update a ticket type. |
> | `intercom_openapi_update_ticket_type_attribute` | You can update an existing attribute for a ticket type. |
> | `intercom_openapi_update_visitor` | Sending a PUT request to `/visitors` will result in an update of an existing Visitor. |

## Frequently asked questions

> [accordion] Can I limit an agent to read-only Intercom access?
>
> Yes. A credential policy rule with methods: GET in the resources block restricts the agent to GET requests only, blocking creates, updates, and deletes regardless of which tools the agent calls. See the credential policies docs for the full rule syntax.

> [accordion] Does the integration support webhook events from Intercom?
>
> No. The catalog entry for guildai\~intercom-openapi lists no webhook events, so the integration does not receive inbound events from Intercom.

> [accordion] Can I use different Intercom accounts in different workspaces?
>
> Yes. Connect a workspace-scoped credential in each workspace and point each one at a different Intercom account. Guild resolves credentials in order: a workspace credential takes precedence over the account default, so each workspace uses the account you intend.

> [accordion] How do I stop one agent from using a shared Intercom credential?
>
> Connect a dedicated credential scoped to that agent, or add a DENY rule in the credential policy scoped to that agent's ID. A dedicated credential serves only the one agent it is attached to and never serves other agents in the workspace.

## Put a governed agent on Intercom this week

> [card] [Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)
>
> See how teams govern agents that use Intercom.

> [card] [Talk to sales](https://guild.ai/talk-to-sales)
>
> Get access to Guild, then connect Intercom to your first agent.

## Related

**Also runs on Guild:** [Front](https://docs.guild.ai/integrations/front-openapi.md) · [Pylon](https://docs.guild.ai/integrations/pylon-openapi.md) · [Zendesk](https://docs.guild.ai/integrations/zendesk.md)

**Read:** Docs: [Credential policies](https://docs.guild.ai/platform/credential-policies.md) · [Credentials](https://docs.guild.ai/platform/credentials.md) · [Tools in agents](https://docs.guild.ai/sdk/tools.md)
