Close MCP logo

Integrate Close MCP with your AI CRM

Close MCP gives agents scoped access to CRM leads, contacts, opportunities, activities, communications, and organization workflows.

Explore Triggers and Actions

Activity search

Search for activities. Results are returned ordered by date descending. Examples: - To list activities on a lead, use the lead_ids filter. - To list conversations, filter for calls and meetings.

ActionTry it

Aggregation

Perform an aggregation to answer questions like: - How many emails were sent this week? - Calls by user this week (Who made the most?) You MUST first fetch the list of available leads of fields using the `get_fields` tool.

ActionTry it

Apply voice agent update

Apply a previously proposed voice agent update. This tool persists the server-stored proposal identified by proposal_id. It does not rerun the feedback processor, and it fails if the proposal has expired or the voice agent changed after the proposal was created.

ActionTry it

Close product knowledge search

Search Close product documentation and knowledge base for relevant information. Use this tool when users ask about: - How to use specific Close features - Close API documentation and integration - Workflow automation and best practices - Product capabilities and limitations - Setup and configuration guidance Example queries: - "How do I set up automated lead assignment?" - "What are Close's API rate limits?" - "How to create custom fields in Close?" - "Best practices for email templates in Close"

ActionTry it

Create address

Add a new address to an existing lead (company).

ActionTry it

Create call task

Schedule a call task on a lead, assigned to either a user or a voice agent (Chloe). A call task represents a scheduled outbound call that will be made to the specified contact at the given time. The task can be assigned to a specific user or dispatched to a voice agent.

ActionTry it

Create comment

Add a comment to a commentable object (note, call, opportunity, task, custom object, etc.). If the object already has a comment thread, the new comment is appended to it. Otherwise a new thread is started for the object. Use this tool for both starting a conversation and replying to an existing one — the object_id alone determines which. Comments support @-mentions of users and groups. The body is HTML.

ActionTry it

Create contact

Create a new contact for a lead. A contact represents a person associated with a lead (company).

ActionTry it

Create custom activity instance

Create a new custom activity instance on a lead. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Use the find_custom_activities tool to look up the available custom activity types. If in an interactive session, ask the user for the relevant field values (including custom fields) before creating, even if they are not required.

ActionTry it

Create custom object instance

Create a new custom object instance on a lead. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Use the find_custom_object_types tool to look up the available custom object types. If in an interactive session, ask the user for the relevant field values (including custom fields) before creating, even if they are not required.

ActionTry it

Create draft email

Create a draft email on a lead. The email is saved as an unsent draft for the user to review, edit, and send from Close; it is never sent automatically. Provide the body as Close rich text (HTML) via body_html. To create a reply in an existing thread, provide the ID of the email being replied to via in_reply_to_id.

ActionTry it

Create email template

Create a new email template. Handling of attachments and unsubscribe links via this tool is currently unsupported. Email template body should be HTML formatted. Use template tags as placeholders, for example: {{ organization.name }} to refer to the sender's organization name. {{ user.first_name }} {{ user.last_name }} {{ user.email }} {{ user.phone }} to refer to the user sending the email. {{ lead.display_name }} to refer to the lead name (recipient's name/company). {{ contact.first_name }} {{ contact.last_name }} to refer to the recipient.

ActionTry it

Create lead

Create a new lead (company). After creating a lead, you should usually add an address or contact (including phone or email) to the lead.

ActionTry it

Create lead status

Create a new lead status.

ActionTry it

Create note

Create a new note on a lead. A note is a text-based activity attached to a lead. At least one of note (plaintext) or note_html (rich text) must be provided.

ActionTry it

Create opportunity

Create a new opportunity. Requires a lead ID and status ID. Other fields are optional. The value should be specified in cents (e.g., $100.00 = 10000).

ActionTry it

Create opportunity status tool

Create a new opportunity status.

ActionTry it

Create pipeline

Create a new opportunity pipeline. Use the create_opportunity_status tool to add statuses to the pipeline.

ActionTry it

Create sms template

Create a new SMS template. Handling of attachments via this tool is currently unsupported. Use template tags as placeholders, for example: {{ organization.name }} to refer to the sender's organization name. {{ user.first_name }} {{ user.last_name }} {{ user.email }} {{ user.phone }} to refer to the user sending the message. {{ lead.display_name }} to refer to the lead name (recipient's name/company). {{ contact.first_name }} {{ contact.last_name }} to refer to the recipient.

ActionTry it

Create task

Create a new task for a lead. A task represents a to-do item that can be assigned to a user and optionally associated with a contact.

ActionTry it

Create workflow

Create a new workflow (a.k.a. sequence) with Draft status.

ActionTry it

Customized builtin labels

Return the customized builtin labels. Only renamed labels are returned - an empty result means the default names apply.

ActionTry it

Delete address

Delete an address from an existing lead (company) if there is an exact match.

ActionTry it

Delete call task

Delete a call task. Does not affect sibling tasks.

ActionTry it

Delete contact

Permanently delete an existing contact. This will remove the contact from its lead including its email addresses, phone numbers, and URLs will be removed. Activities on the lead are not affected. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the contact.

ActionTry it

Delete custom activity instance

Permanently delete an existing custom activity instance. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the custom activity instance.

ActionTry it

Delete custom object instance

Permanently delete an existing custom object instance. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the custom object instance.

ActionTry it

Delete email template

Permanently delete an email template. If the template is used in any workflows (sequences), it cannot be deleted.

ActionTry it

Delete lead

Permanently delete an existing lead (company) by ID including all of its addresses, contacts, opportunities, tasks, and activities. ONLY call this if the user specifically instructed you to delete the lead, and you confirmed what the deletion will entail and that it cannot be reversed.

ActionTry it

Delete lead smart view

Permanently delete a lead smart view (saved search).

ActionTry it

Delete lead status

Permanently delete a lead status. Cannot delete if it's the last lead status in the organization or there are leads currently using this status.

ActionTry it

Delete note

Permanently delete an existing note. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the note.

ActionTry it

Delete opportunity

Permanently delete an opportunity. This action cannot be undone. All data associated with the opportunity will be removed.

ActionTry it

Delete opportunity status tool

Permanently delete an opportunity status. Cannot delete if it's the last opportunity status in the organization or there are opportunities currently using this status.

ActionTry it

Delete pipeline

Permanently delete an opportunity pipeline. A pipeline can only be deleted if it has no statuses. The last pipeline cannot be deleted.

ActionTry it

Delete sms template

Permanently delete an SMS template. If the template is used in any workflows (sequences), it cannot be deleted.

ActionTry it

Delete task

Permanently delete an existing task by ID. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the task.

ActionTry it

Enrich field

Use AI to determine and set the value of a field on a lead or contact. The field is enriched using available data on the object and external sources, and the enriched value is written back to the object. By default the value is only written if the field is currently empty; set overwrite_existing_value to True to replace an existing value. Returns the enriched value along with the model's reasoning and confidence.

ActionTry it

Fetch call

Fetch a single call activity by ID. Returns the call's direction, outcome, participants, and (if available) its transcript.

ActionTry it

Fetch call task

Fetch a single call task by ID.

ActionTry it

Fetch comment

Fetch a single comment by ID. Returns the comment's rich-text (HTML) body, the thread and lead it belongs to, its @-mentions, and the resolved author and last-editor names.

ActionTry it

Fetch contact

Fetch an existing contact by ID. Returns the contact's details including name, title, email addresses, phone numbers, and URLs.

ActionTry it

Fetch custom activity instance

Fetch an existing custom activity instance by ID. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Returns the full instance, including its custom field values and the resolved lead, contact, and user names.

ActionTry it

Fetch custom object instance

Fetch an existing custom object instance by ID. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Returns the full instance, including its custom field values and the resolved lead, custom object type, and creator/updater names.

ActionTry it

Fetch custom object type

Fetch a single custom object type by its ID. A custom object type defines the shape of a category of custom objects, including the custom fields its instances hold. Returns the type with its custom fields.

ActionTry it

Fetch email template

Fetch an email template by ID. Returns the complete email template with all its details.

ActionTry it

Fetch invoice

Fetch one of the organization's billing invoices by id.

ActionTry it

Fetch lead

Fetch an existing lead (company) by ID.

ActionTry it

Fetch lead smart view

Fetch a lead smart view (saved search) by ID.

ActionTry it

Fetch lead status

Fetch a lead status by ID.

ActionTry it

Fetch meeting transcript

Fetch a meeting's Notetaker transcript(s) by meeting activity ID. Returns the meeting's speaker breakdown, summary, and full speaker-labeled transcript text. Only covers Notetaker (meeting) transcripts; call transcripts are served by `fetch_call`.

ActionTry it

Fetch note

Fetch an existing note by ID. Returns the full note details including title, text, and metadata.

ActionTry it

Fetch opportunity

Fetch a specific opportunity by ID. Returns the complete opportunity with all its details.

ActionTry it

Fetch opportunity status

Fetch an opportunity status by ID.

ActionTry it

Fetch pipeline and opportunity statuses

Fetch an opportunity pipeline, including its opportunity statuses, by ID.

ActionTry it

Fetch sms template

Fetch an SMS template by ID. Returns the complete SMS template with all its details.

ActionTry it

Fetch task

Fetch an existing task by ID. Returns the task's details including the associated lead, contact, assignee, due date, priority, and completion status.

ActionTry it

Find call outcomes

List all outcomes applicable to calls available in the organization.

ActionTry it

Find call tasks

Find call tasks based on various filters. You can filter by lead, contact, assignee (a user or a voice agent), completion state, and scheduled/created/updated dates.

ActionTry it

Find contact custom fields

List all contact custom fields defined for the organization. Includes both contact-specific fields and shared fields associated with contacts. Returns each field's ID, name, description, type, allowed choices (for choice fields), whether multiple values are accepted, and whether it is a shared field. Useful for deciding which custom field to read or write when working with contacts.

ActionTry it

Find custom activities

List all active (non-archived) Custom Activity Types in the organization, along with the custom fields defined on each type. Call this before creating a workflow with a "custom-activity-event" trigger so you can look up the correct Custom Activity Type ID.

ActionTry it

Find custom activity instances

Find a lead's custom activity instances based on various filters. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Always scoped to a single lead; optionally filter by attributed user, one or more custom activity types, or activity date. Results are sorted by most recent activity first and are cursor-paginated.

ActionTry it

Find custom object instances

Find a lead's custom object instances. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Always scoped to a single lead; optionally filter to a single custom object type. Results are ordered by creation date (oldest first) and are cursor-paginated.

ActionTry it

Find custom object types

List all custom object types in the organization, along with the custom fields defined on each type.

ActionTry it

Find email templates

List or find email templates

ActionTry it

Find forms

List all web forms in the organization. Call this before creating a workflow with a "form-submission-event" trigger so you can look up the correct Form ID.

ActionTry it

Find groups

List all groups in the organization.

ActionTry it

Find invoices

Find the organization's billing invoices, newest first. Invoices without a date sort first.

ActionTry it

Find lead custom fields

List all lead custom fields defined for the organization. Returns each field's ID, name, description, type, allowed choices (for choice fields), whether multiple values are accepted, and whether it is a shared field. Useful for deciding which custom field to read or write when working with leads.

ActionTry it

Find lead smart views

List lead smart views (saved searches).

ActionTry it

Find lead statuses

List or find lead statuses for the organization

ActionTry it

Find meeting outcomes

List all outcomes applicable to meetings available in the organization.

ActionTry it

Find notes

Find notes based on various filters.

ActionTry it

Find opportunities

Find opportunities by status (active/won/lost), owner, lead, or close-date range, optionally only those needing attention, sorted by soonest close, largest value, or highest confidence. Returns each opportunity with resolved lead, contact, owner, and status names; cursor-paginated.

ActionTry it

Find opportunity custom fields

List all opportunity custom fields defined for the organization. Includes both opportunity-specific fields and shared fields associated with opportunities. Returns each field's ID, name, description, type, allowed choices (for choice fields), whether multiple values are accepted, and whether it is a shared field. Useful for deciding which custom field to read or write when working with opportunities.

ActionTry it

Find pipelines and opportunity statuses

List all opportunity pipelines and their opportunity statuses in the organization.

ActionTry it

Find scheduling links

List available scheduling links for the user and org. User-owned personal links come with a URL. Shared links come with a special template tag. Each can be inserted into generated templates.

ActionTry it

Find sms templates

List or find SMS templates

ActionTry it

Find tasks

Find tasks based on various filters. You can filter by lead, assignee, completion state, and due/created/ updated dates.

ActionTry it

Find voice agents

List all voice agents configured for the organization. Voice agents are AI callers that place outbound calls to leads' contacts on the user's behalf. Returns each voice agent's ID and name. Use this to find the right voice agent ID when scheduling a call or assigning a call step in a workflow. Users may refer to voice agents as "voice agents", "Chloe", or by their configured name. When more than one agent exists, pick the most appropriate one based on the name.

ActionTry it

Find workflows

List or find workflows

ActionTry it

Get ai credit usage

AI credit usage for the billing account, broken down by feature. Reports total credits used and a per-feature breakdown. Credits are the billing unit for AI features. Usage covers the whole billing account, not a single organization. Omit `start`/`end` for the current billing period; the result's `start`/`end` report the window actually measured. Explicit ranges must be timezone-aware and span at most 366 days. Older ranges may return empty or partial data — zero usage for an old range does not mean no activity. On a rate-limited error, retry after `retry_after` seconds.

ActionTry it

Get fields

Use this field ONLY to get a list of fields for the aggregation tool.

ActionTry it

Get voice agent overview report

Cross-agent rollup for the Voice Agents list page. Returns one row per **active** agent — agents with completed calls in `date_range` **or** queued upcoming calls. Cumulative funnel counts (`answered`, `engaged`, `objective_met`) plus `total_calls`. `upcoming_calls` is the agent's queued (not yet completed) calls and is **not** bound by `date_range` — open tasks are open regardless of when scheduled (so an agent with only upcoming calls still appears). Use this to compare agents; for one agent's outcomes, sentiment, or time saved use `get_voice_agent_performance_report`. For an inventory of all configured voice agents regardless of activity, use `find_agent_configs`. The Voice Agents list (Agents tab) shows all-time stats, so leave `date_range` at its default (`all_time`) unless the user asks for a specific window. (The Upcoming and Recent tabs are call lists, not this rollup — search Calls for those.) Rows are sorted server-side per the `sort` field (default `most_calls`); pass a different mode rather than re-sorting in your reply. Set `reverse=True` to invert (e.g. `sort=most_calls, reverse=True` for least active first) — necessary to surface the bottom of the ordering, since `rows` are capped before they reach you. `truncated` and `total_agent_count` flag in-scope active agents; `dormant_agent_count` reports in-scope agents with **neither** completed calls in the date range **nor** queued upcoming calls (not included in `rows`).

ActionTry it

Get voice agent performance report

Performance metrics for one voice agent. Returns the numbers shown on the Performance tab of a Voice Agent detail page. Passing multiple `agent_config_ids` pools metrics into a single aggregate (not a per-agent breakdown — for that, use `get_voice_agent_overview_report`). For per-call drill-down, search Calls filtered by `agent_config_id`. When the user is on a Voice Agent page, pull `date_range` from `page_context.date_range` so the numbers match the UI. Percentages: `*_pct` is over `total_calls`; `engaged_over_answered_pct` and `objective_met_over_answered_pct` are over `answered` (tier-to-tier conversion). For any other denominator, compute from `*_count`. `funnel_previous_period_deltas` is null when the date range has no defined previous period (e.g. `all_time`).

ActionTry it

Get voice agents

Return detailed configuration for one or more voice agents. Includes each agent's objective, user instructions, and which skills are enabled. Use this as the follow-up to `find_voice_agents` once one or more agent IDs have been selected.

ActionTry it

Lead search

Perform a simple lead search and return the initial set of results. Use this to retrieve all leads, most recent leads, search leads by keyword, or filter by lead status and smart view. For more complex searches use the `search` tool instead. Leads will be returned by last updated first.

ActionTry it

List membership requests

List pending requests to join the current organization. Each entry includes the requesting user's name and email, the request id, and when the request was created.

ActionTry it

Org info

Return general information about the organization and the user.

ActionTry it

Org users

Return active users (memberships) which are part of the current org.

ActionTry it

Paginate search

Paginate a search to retrieve more results. Provide exactly one of: - `search_id`: a `share_*` id from a previous search or shared entry, or - `smart_view_id`: a `save_*` Smart View (saved search) id the user is viewing.

ActionTry it

Propose voice agent update

Propose a voice agent configuration update from natural-language feedback. This tool does not apply changes to the voice agent. It returns a short behavioral summary and proposal ID when the requested edit is clear. If the feedback is ambiguous, it returns clarification questions instead of making a proposal. Use apply_voice_agent_update with the proposal ID only after the user approves the proposal.

ActionTry it

Schedule voice agent call

Schedule a voice agent to call a lead's contact. Creates a call task assigned to the voice agent. The voice agent will place the call automatically at the scheduled time, or as soon as the queue picks it up when no time is given. Use `find_voice_agents` first to discover which voice agents are available in this organization.

ActionTry it

Search

Perform a natural language search for leads or contacts. If a more specific search tool (like lead_search or activity_search) satisfies the request, use that tool instead. You can reference related objects like activities (such as calls, emails, meetings, notes, custom activities, etc.), opportunities, tasks as long as they are part of a lead query. Example queries: - leads not contacted in the past week - leads assigned to me with uncompleted tasks - leads with an active opportunity over $500 - contacts with CTO title Each returned result will contain a title label, preview text, object ID, and URL. The initial set of results, total count of all results, and a URL to open the results in Close is returned. To retrieve more results, use the returned cursor and call the paginate_search tool using the cursor and search ID returned in this response.

ActionTry it

Update call task

Update a call task. Only fields that are provided will be updated. Reassigning to a user or voice agent (agent_config_id) affects only this task. Completing a call task also completes every sibling task sharing its deduplication key.

ActionTry it

Update contact

Update an existing contact. You can update a contact's name, title, email addresses, phone numbers, and URLs. Only fields that are provided will be updated.

ActionTry it

Update custom activity instance

Update an existing custom activity instance. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Only fields that are provided will be updated. For custom fields, only the custom fields included are modified; pass null to clear one. Pass 'clear' for contact_id to detach the contact.

ActionTry it

Update custom object instance

Update an existing custom object instance. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Only fields that are provided will be updated. For custom fields, only the custom fields included are modified; pass null to clear one.

ActionTry it

Update draft email

Update an existing draft email. Only draft emails can be updated; sent or scheduled emails are rejected. Only fields that are provided are changed. This never sends the email.

ActionTry it

Update email template

Update an existing email template. Only fields that are provided and not None will be updated. Handling of attachments and unsubscribe links via this tool is currently unsupported. Email template body should be HTML formatted. Use template tags as placeholders, for example: {{ organization.name }} to refer to the sender's organization name. {{ user.first_name }} {{ user.last_name }} {{ user.email }} {{ user.phone }} to refer to the user sending the email. {{ lead.display_name }} to refer to the lead name (recipient's name/company). {{ contact.first_name }} {{ contact.last_name }} to refer to the recipient.

ActionTry it

Update lead

Update an existing lead (company). Only fields that are provided and not None will be updated.

ActionTry it

Update lead smart view

Update a lead smart view (saved search). Only fields that are provided and not None will be updated.

ActionTry it

Update lead status

Update the label of an existing lead status.

ActionTry it

Update note

Update an existing note. Only fields that are provided will be updated. Note content is provided as rich text (HTML) via note_html; the plaintext note is automatically derived.

ActionTry it

Update opportunity

Update an existing opportunity. Only fields that are provided will be updated. The value should be specified in cents (e.g., $100.00 = 10000).

ActionTry it

Update opportunity status tool

Update the label of an existing opportunity status.

ActionTry it

Update pipeline

Update an existing opportunity pipeline. Only fields that are provided will be updated.

ActionTry it

Update sms template

Update an existing SMS template. Only fields that are provided will be updated. Fields that are not provided will remain unchanged. Handling of attachments via this tool is currently unsupported. Use template tags as placeholders, for example: {{ organization.name }} to refer to the sender's organization name. {{ user.first_name }} {{ user.last_name }} {{ user.email }} {{ user.phone }} to refer to the user sending the message. {{ lead.display_name }} to refer to the lead name (recipient's name/company). {{ contact.first_name }} {{ contact.last_name }} to refer to the recipient.

ActionTry it

Update task

Update an existing task. Only fields that are provided will be updated. Pass 'clear' for contact_id or due_date to clear those values.

ActionTry it

How the Close MCP integration works

The Close MCP integration connects your Dench AI CRM directly to Close MCP, so agents can read and act on your Close MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.

109 actions are available for agents to invoke on your behalf. Every call runs through Close MCP's own authorization, scoped to the account you connect.

Set up Close MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Close MCP and click Connect — you'll authorize access through Close MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Close MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Close MCP integration work with Dench?

The Dench Close MCP integration connects your AI CRM to Close MCP, so AI agents can work with your Close MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.

What actions can AI agents perform with Close MCP via Dench?

The Close MCP integration currently exposes 109 actions, including Activity search, Aggregation, Apply voice agent update, Close product knowledge search, Create address, and Create call task. Agents invoke them on your behalf from chat or from automations.

Do I need to write code to connect Close MCP to Dench?

No. You connect Close MCP from your Dench workspace using Close MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.

Is the Close MCP integration secure?

Connections are authorized through Close MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Close MCP connection from your workspace settings at any time.

Close MCP | Dench AI CRM