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

# Tool reference

> Every tool the Fuse MCP server serves, by product area, with what each one does and whether it reads, writes or deletes.

The 290 tools the Fuse MCP server serves, grouped by product area, as listed on 2026-10-07. Each row shows the tool's name, the opening of the description the server sends to your assistant, and whether the tool only reads, makes changes, or deletes or removes something. Your client shows the full descriptions and input fields.

For how the tools behave, what they cost and the limits that apply, see [Tools & limits](/mcp/tools). This page is generated from the server's own tool list, so it changes when Fuse adds or renames tools.

## Prospect search and enrichment

Search Fuse's people and company database, turn a description into filters, save matches to lists, and enrich contacts.

| Tool | What it does | Access |
| - | - | - |
| `bulk_enrichment_tool` | **Bulk Contact Enrichment.** Enriches multiple contacts/prospects in bulk. Accepts a listName, a limit, an optional offset and an enrichType. | Writes |
| `bulk_save_companies_to_list` | **Bulk Save Companies To List.** Save up to `limit` companies matching a filter set into one or more lists. Filter-based (no need to pass company objects) — the preferred way to save company-search results to a list. | Writes |
| `bulk_upload_to_list_tool` | **Bulk Upload To List.** Builds or appends to a list from a saved search or from another list (the 'save-by-search' / 'save-by-list' flow). | Writes |
| `create_prospect_search_filters_tool` | **Create Prospect Search Filters.** Converts a people or company discovery request into Prospect Search filters. Criteria that cannot be expressed as filters are reported back. | Read-only |
| `delete_saved_search` | **Delete Saved Search.** Delete a saved search. Destructive — only call after the user has explicitly confirmed. | Destructive |
| `enrich_contact` | **Enrich Contact.** Look up a person's professional email address, phone number, or both by querying a waterfall of data providers (People Data Labs, Apollo, Hunter, ContactOut, Datagma, and others). | Writes |
| `get_company_filter_autocomplete` | **Company Filter Autocomplete.** Resolve a company (or investor) name to its canonical name + domain, for use in company-search filters (nameLike / investors). | Read-only |
| `get_company_search_enums` | **Company Search Enums.** Get the canonical reference lists for company-search filters: industries, company tags, NAICS codes, countries (apiCodes), and accelerators — the valid values for advanced company filter sets. | Read-only |
| `get_location_filter_autocomplete` | **Location Filter Autocomplete.** Resolve a place name to the coordinates and full address used by the headquartersCity company-search filter. | Read-only |
| `list_saved_searches` | **List Saved Searches.** List the user's saved searches, including their ids (needed to update or delete a saved search). | Read-only |
| `lookup_filter_values` | **Look up canonical filter values.** Resolve free text to the platform's canonical filter value for a region, industry, title, or school. | Read-only |
| `prospect_search_tool` | **Prospect Search To List.** Searches a professional database of 500M+ profiles by job title, seniority, company, industry, location, skills, and other attributes, then saves the matching contacts to a Prospect List. | Writes |
| `prospecting_analytics` | **Prospecting Analytics.** Get prospecting / data-enrichment analytics for the user over a date window. `since` and `to` are ISO 8601 date-time instants (e.g. | Read-only |
| `save_companies_to_list` | **Save Companies To List.** Save specific company objects to one or more lists (each company wrapped as \{ fiberDetails: company }). | Writes |
| `save_search` | **Save Search.** Create or update a saved search (a named filter set the user can reuse). | Writes |
| `search_companies` | **Search Companies.** Search the company database and RETURN the matched companies (name, domain, industry, size, location) plus a cursor for paging. | Writes |
| `search_people` | **Search People.** Search the people/prospect database and RETURN the matched people (name, title, company, location, LinkedIn) plus a scroll\_token for paging. | Writes |
| `single_enrichment_tool` | **Single Contact Enrichment.** Enriches a single contact by LinkedIn URL or by name + company domain. You MUST pass enrichType: email, phone, or all based on what the user asked for. | Writes |

## Lists, contacts and companies

Lists and their rows, imports, smart columns, exports, and the saved contact and company records behind them.

| Tool | What it does | Access |
| - | - | - |
| `add_list_rows_tool` | **Add List Rows.** Adds existing contacts or companies (by id) to a prospect list. Provide the listId plus the ids under `contacts` or `companies` as \[\{ action: 'add', ids: \[...] }]. | Writes |
| `check_company_saved` | **Check Saved Companies.** Check which companies the user has saved in their CRM, by website domain. Pass `domains` (1 to 500 company domains or website URLs; each is normalized to its registrable domain). | Read-only |
| `check_contact_has_email` | **Check Contact Has Email.** Check whether the user holds a usable email for a CRM contact. Pass contactId (24-hex) and optional verifiedOnly (default true: only verified-valid emails count; false: any deliverable email counts, including unverified user-supplied ones). | Read-only |
| `count_all_enriched_contacts_tool` | **Count All Enriched Contacts.** Returns how many contacts are in the dynamic 'All Enriched Contacts' list. | Read-only |
| `create_company_from_domain` | **Create Company From Domain.** Save a company for this user by website domain. Pass `website` (a domain or URL); if no company record exists for the domain it is created (and back-filled from the company data provider), then the user's access mapping is created so the company appears in… | Writes |
| `create_crm_list` | **Create List.** Create a new list. Provide name (required), entityType (contactList or companyList), and optionally seed members via contacts or companies (arrays of ids). | Writes |
| `create_smart_column_tool` | **Create Smart Column.** Adds an AI 'smart column' that researches/scores each row of a list from a prompt. | Writes |
| `delete_list_tool` | **Delete List.** Deletes an entire prospect list. Destructive and irreversible — only call after the user has explicitly confirmed. | Destructive |
| `download_list_csv_tool` | **Download List CSV.** Generates the CSV export of a list and returns the raw CSV text (the export is produced server-side; large lists produce large outputs). | Read-only |
| `extract_list_filter_values_tool` | **Extract List Filter Values.** Returns, as `companies`, the distinct values of a field ('name' or 'domain') over a window of a company list's rows (start/amount, in the list's display order), plus the list's row count as `total` — useful for building a filter before viewing rows. | Read-only |
| `get_crm_company_by_id` | **Get CRM Company.** Fetch one CRM company by its companyId (the company's 24-hex id — what a company event carries as companyId, and what a contact record's companyId points at). | Read-only |
| `get_crm_contact_by_id` | **Get CRM Contact.** Fetch one CRM contact by its contactId (the contact's 24-hex id), returning the full record (profile fields, emails, phones, company data). | Read-only |
| `get_crm_contacts` | **List CRM Contacts.** List the user's CRM contacts with optional filters (name, firstName, lastName, country, company, isArchived) and pagination (page, pageSize, sortBy, sortOrder asc\|desc). | Read-only |
| `get_list_prospect_ids_tool` | **Get List Prospect Ids.** Returns all entity ids in a list (contactIds, customContactIds, companyIds, customCompanyIds) — useful before removing rows, updating cells, or pushing to a CRM. | Read-only |
| `get_prospect_list_rows_tool` | **Get Prospect List Rows.** Fetches the rows (contacts or companies) inside a specific prospect list, returning their ids under the top-level `data` array, with `pagination` (\{ total, page, pageSize, totalPages }) alongside it. | Read-only |
| `get_smart_column_job_status_tool` | **Get Smart Column Job Status.** Checks progress of a smart-column job (pending/processing/completed/failed + counts). | Read-only |
| `get_smart_column_provenance_tool` | **Get Smart Column Provenance.** Explains how one smart-column cell was produced (reasoning, research steps, source URLs). | Read-only |
| `import_companies_to_list` | **Import Companies To List.** Save companies you already have (read off a web page you scraped, from text the user pasted, or from your search results) into a company list: a new one (newListTitle) or an existing company list (existingListId). mode DEMOGRAPHICS enriches them in the… | Writes |
| `import_people_to_list` | **Import People To List.** Save people you already have (read off a web page you scraped, from text the user pasted, or from your search results) into a people list: a new one (newListTitle) or an existing people list (existingListId). mode DEMOGRAPHICS matches each person to a known… | Writes |
| `list_prospect_lists_tool` | **List Prospect Lists.** Lists the user's prospect lists (contact and company) with their names and real ids; supports search-by-name, sorting and pagination. | Read-only |
| `remove_list_rows_tool` | **Remove List Rows.** Removes contacts or companies from a prospect list. Destructive — only call after the user has confirmed. | Destructive |
| `rename_list_tool` | **Rename List.** Renames a prospect list. Provide the listId and the new name. | Writes |
| `reorder_list_columns_tool` | **Reorder List Columns.** Reorders the columns of a prospect list. Provide listId and the complete ordered array of column ids. | Writes |
| `rerun_smart_column_tool` | **Rerun Smart Column.** Re-runs an existing smart column over a list. ASYNC — returns a jobId whose progress can be polled. | Writes |
| `suggest_list_column_mapping_tool` | **Suggest List Column Mapping.** AI-maps arbitrary input columns to FuseAI's list/enrichment fields. Useful before a bulk upload when the source columns are unknown. | Writes |
| `update_contact_primary_email_or_phone` | **Set Contact Primary Email/Phone.** Set a CRM contact's primary email or primary phone. Pass the contactId plus primaryEmail and/or primaryPhone — only the provided fields change (PATCH semantics). | Writes |
| `update_list_cell_tool` | **Update List Cell.** Sets custom-column cell values for rows in a list. Provide listId, columnId, and columnValues entries keyed by the row's entity — \[\{ contact: '\<contactId>', value }] or \[\{ company: '\<companyId>', value }] — plus optional isEdited. | Writes |
| `upload_prospects_to_list` | **Upload Prospects To List.** Save prospects whose details you ALREADY HAVE (from the user, enrichment results, or research) into a prospect list: QUEUES a background upload that creates the contacts and adds them to the list, answering immediately with the destination list id(s). | Writes |
| `upsert_company_by_domain` | **Upsert Company By Domain.** Create the canonical CRM company record for a website domain when none exists, or update it when it does. | Writes |
| `upsert_crm_contact` | **Upsert CRM Contact.** Find or create a CRM contact for the user and return its id. Matches an existing contact by LinkedIn URL first, then by email, then by firstName + lastName at companyDomain; a match is attached to the user and reused (never duplicated). | Writes |

## Campaigns

Campaigns, their sequences and leads, templates, scheduled sends and auto-replies, launching and pausing, and campaign analytics.

| Tool | What it does | Access |
| - | - | - |
| `activate_campaign_lead_tool` | **Resume Campaign Lead.** Resume one paused lead's sequence inside a campaign and report the step that runs next. | Writes |
| `add_list_to_campaign_tool` | **Add List To Campaign.** Adds a further prospect list to an existing campaign (max 10). The campaign must already have at least one list from initialize\_campaign\_tool — this does not create a campaign without a list. | Writes |
| `add_spintax_to_text_tool` | **Add Spintax To Text.** Rewrites a piece of email/message text with spintax \{variation\|variation} alternatives to improve deliverability. | Read-only |
| `change_campaign_lead_status_tool` | **Change Campaign Lead Status.** Activate (resume) or deactivate (pause) one lead within its campaign, by the lead's targetContactId. | Writes |
| `check_sequence_list_compatibility_tool` | **Check Sequence/List Compatibility.** Pre-flight check before attaching a list to a sequenced campaign: verifies the list has enough enriched emails / LinkedIn URLs to satisfy the sequence's channels. | Read-only |
| `create_campaign_template_tool` | **Create Campaign Template.** Save an existing campaign (its sequence + settings) as a reusable template under a given name. | Writes |
| `create_sequence_step_tool` | **Create Sequence Step.** Adds a new sequence step to a campaign at an explicit position, specifying channel, wait days, type, and content. | Writes |
| `deactivate_campaign_lead_tool` | **Stop Campaign Lead.** Stop one lead's sequence inside a campaign, cancelling every step still pending for them. | Destructive |
| `delete_all_sequence_steps_tool` | **Delete All Sequence Steps.** DESTRUCTIVE: deletes ALL sequence steps from a campaign (clears its sequence). Only call after the user has explicitly confirmed. | Destructive |
| `delete_campaign_templates_tool` | **Delete Campaign Templates.** DESTRUCTIVE: permanently delete saved campaign templates by id. Only call after the user has explicitly confirmed which templates to delete. | Destructive |
| `delete_sequence_step_tool` | **Delete Sequence Step.** DESTRUCTIVE: deletes a single sequence step by its id. Only call after the user has explicitly confirmed removing that step. | Destructive |
| `duplicate_campaign_tool` | **Duplicate Campaign.** Duplicates an existing campaign (creates a copy with its sequence). Pass the campaignId to clone. | Writes |
| `exclude_contact_from_campaigns_tool` | **Exclude Contact From Campaigns.** Stop a CRM contact's sequence inside one or more campaigns (contactId + campaignIds), cancelling every step still pending for them. | Destructive |
| `generate_ai_sequence_tool` | **Generate AI Sequence.** AI-generate the outreach sequence (the email/LinkedIn steps + copy) for a campaign, for when the user wants the sequence written for them. | Writes |
| `generate_campaign_sequence_tool` | **Generate Campaign Sequence.** Write a fresh AI-generated sequence for a campaign, replacing its current steps. | Destructive |
| `generate_campaign_target_contacts_tool` | **Generate Campaign Target Contacts.** STARTS (first-time launches) a campaign: validates readiness, enrolls the attached lists' contacts as its targets, and flips the campaign to ACTIVE — outreach begins on its schedule. | Writes |
| `generate_campaign_target_list_tool` | **Generate Campaign Target List.** Enrol a campaign's source lists and start it. Enrolment runs in the background, so this returns as soon as the work is queued. | Writes |
| `get_campaign_analytics_trend_tool` | **Campaign Analytics Trend.** Get campaign outreach performance over time — email, LinkedIn, or dialer (sent/opened/replied, invites/accepted, dialed/answered/connected/voicemails etc.). | Read-only |
| `get_campaign_lead_activity_tool` | **Get Campaign Lead Activity.** Show one lead's activity timeline within a campaign — sends, opens, clicks, replies. | Read-only |
| `get_campaign_lead_activity_tool_v2` | **Get Campaign Lead Activity.** The full outreach timeline for ONE lead in a campaign: planned steps, emails scheduled and sent, replies received, and LinkedIn invitations and messages. targetContactId is the campaign LEAD row id (campaign\_target\_lists.\_id, as returned by the campaign lead… | Read-only |
| `get_campaign_sequence_steps_tool` | **Get Campaign Sequence Steps.** Lists a campaign's sequence steps WITH their step ids (sequenceStepId), channels, wait days, and content. | Read-only |
| `get_campaign_tool` | **Get Campaign.** Fetch one campaign's full configuration by id — name, status, sequence settings, schedule, source lists, exclusions, unsubscribe/open/click tracking, and the resolved tracking-link origin (custom domain vs Fuse). trackingDomainId null still uses the team's… | Read-only |
| `get_campaign_visibility` | **Get Campaign Visibility.** Read the team's campaign visibility setting (who on the team can see each other's campaigns). | Read-only |
| `get_global_campaign_config_tool` | **Get Global Campaign Config.** Get the user's global campaign configuration (sending defaults, limits, schedules). | Read-only |
| `get_prospect_contact_activity_tool` | **Prospect Contact Activity.** One contact's outreach-activity timeline (emails, calls, LinkedIn touches) by CRM contactId — the id a contact event (campaign\_reply, add\_to\_list, ...) carries. | Read-only |
| `initialize_campaign_tool` | **Initialize Campaign.** Creates a DRAFT outreach campaign and starts its background initialization (prompt analysis, knowledge building, topic generation). | Writes |
| `list_auto_reply_campaigns` | **List Auto-Reply Campaigns.** List the campaigns that currently have pending auto-replies (campaignId + name). | Read-only |
| `list_campaign_target_contacts_tool` | **List Campaign Target Contacts.** Lists a campaign's leads (target contacts) with full search, filtering (name, company, tags, statuses, steps sent), sorting and pagination. | Read-only |
| `list_campaign_templates_tool` | **List Campaign Templates.** List the user's saved campaign templates WITH their ids (campaignTemplateId) — reusable campaign/sequence blueprints. | Read-only |
| `list_campaigns_tool` | **List Campaigns.** Lists the user's outreach campaigns (name, status, metrics) with optional search and pagination. | Read-only |
| `list_dynamic_active_campaigns_tool` | **List Dynamic Active Campaigns.** List active campaigns that have live list refresh enabled — returns each one's campaignId, listId and listName. | Read-only |
| `modify_scheduled_reply` | **Modify Pending Auto-Reply.** Edit a pending auto-reply's body/subject before approving. Returns a NEW scheduledEmailId that replaces the old one — the old id becomes invalid. | Writes |
| `pause_email_warmup` | **Pause Email Warmup.** Pause managed deliverability / email warmup for a sending account. `id` is the account's managedDeliverabilityCampaignId from the email-accounts list, passed AS A STRING — the field is numeric, so quote it (e.g. | Writes |
| `preview_campaign_sequence_tool` | **Preview Campaign Sequence.** Preview how a campaign's sequence step renders for sample prospects (variables filled in), without sending. | Read-only |
| `query_auto_replies` | **Query Pending Auto-Replies.** List pending auto-replies awaiting approval (email and/or LinkedIn). Returns each reply's scheduledEmailId (\_id), subject, body, channel, and the email/chat it targets — needed to approve, modify, or skip them. | Read-only |
| `regenerate_campaign_sequence_tool` | **Regenerate Campaign Emails.** Re-generate the AI-written copy for an existing campaign's sequence steps (when the user wants the emails rewritten). | Writes |
| `regenerate_step_topics_tool` | **Regenerate Step Topics.** Re-generates the per-step topics of an AI campaign's EXISTING sequence steps from the campaign's current prompt/focus. | Writes |
| `reorder_sequence_steps_tool` | **Reorder Sequence Steps.** Reorders a campaign's sequence steps. Pass the complete list of the campaign's sequenceStepIds in the new order. | Writes |
| `resolve_scheduled_email_approvals_tool` | **Resolve Scheduled Email Approvals.** Approve or decline drafts awaiting review, in bulk. Approving queues them to send; declining stops them. | Writes |
| `respond_to_auto_reply` | **Approve or Decline Auto-Replies.** Approve (send) or decline (stop) pending auto-replies — works for both email and LinkedIn. | Writes |
| `resubscribe_contact_tool` | **Resubscribe Contact.** Reverses an accidental campaign unsubscribe for a CRM contact. Removes them from the Unsubscribed Contacts system list (so new campaigns and dynamic enrollment stop skipping them) and resumes every campaign lead of yours that was stopped with outcome… | Writes |
| `send_test_sequence_email_tool` | **Send Test Sequence Email.** Send a TEST of one of a campaign's sequence steps to a chosen email address, so the user can preview how it looks before activating. | Writes |
| `skip_scheduled_email` | **Skip Scheduled Email.** Skip a pending scheduled email/auto-reply (drops just this step and advances the sequence — unlike declining, which stops the whole sequence). | Writes |
| `start_email_warmup` | **Start Email Warmup.** Start (resume) managed deliverability / email warmup for a sending account. `id` is the account's managedDeliverabilityCampaignId from the email-accounts list, passed AS A STRING — the field is numeric, so quote it (e.g. | Writes |
| `update_campaign_status_tool` | **Update Campaign Status.** Starts, resumes, or pauses a campaign based on its current status. ACTIVATING STARTS SENDING REAL OUTREACH to prospects — never activate as an implicit part of another task; only on an explicit user request, and confirm with the user first. | Writes |
| `update_campaign_tool` | **Update Campaign Settings.** Updates a campaign's settings (rename via campaignName, set or change the calendar link via ctaLink, toggle auto-pilot/auto-reply via isAutoPilot, toggle the email unsubscribe footer via addUnsubscribeLink, toggle open/click tracking via… | Writes |
| `update_campaign_visibility` | **Update Campaign Visibility.** Set the team's campaign visibility: PRIVATE (only the owner), ADMINS\_ONLY, or ALL\_MEMBERS. | Writes |
| `update_scheduled_email_tool` | **Update Scheduled Email.** Edit a queued send's subject, body, send time or cc/bcc. The edit is stored as a replacement row, so the response carries a NEW scheduledEmailId that later calls must use. | Writes |
| `update_sequence_step_tool` | **Update Sequence Step.** Updates a single sequence step BY ITS ID (subject, body, wait days, topic, or the mailboxes an email step sends from). sequenceStepId is the step's 24-hex MongoDB id. | Writes |
| `update_sequence_tool` | **Update Campaign Sequence.** Edits the sequence of an EXISTING DRAFT campaign, like the campaign editor: add a step, update an existing step (fill a manual campaign's empty placeholder steps, rewrite subject/body, change email threading — also the only way to set threading on… | Destructive |

## Inbox

Reading, sending and organizing email, and AI-written replies and summaries.

| Tool | What it does | Access |
| - | - | - |
| `assign_email_tags` | **Assign Email Tags.** Set the tag/label set on a specific email (replaces its current tags). Tags must already exist in the user's tag set. | Writes |
| `create_email_tag` | **Create Email Tag.** Create a new email tag/label with a name and hex color (6-digit hex with leading '#', e.g. #FF0000). | Writes |
| `delete_email_tag` | **Delete Email Tag.** Delete an email tag/label by name. Destructive — confirm with the user before using. | Destructive |
| `generate_email_from_subject` | **Generate email from subject.** AI-draft a full email from a subject line in the user's voice. Returns the draft text only — it does NOT send anything. | Writes |
| `generate_email_reply` | **Generate email reply.** AI-draft a reply to an email in the user's voice (uses their knowledge hub). Returns the draft text only — it does NOT send anything. | Writes |
| `generate_email_summary` | **Summarize email thread.** AI-summarize an email thread, identified by its emailId (the email's id from the user's inbox). | Read-only |
| `list_email_tags` | **List Email Tags.** List the user's email tags/labels (name + color). | Read-only |
| `list_emails` | **List Inbox Emails.** List emails from the user's inbox (or another label). Returns recent emails with ids, subjects, and senders. labelType picks the view (inbox, sent, drafts, important, unread, scheduled, snoozed, archived, deleted, spam, favorite, prospects). | Read-only |
| `send_email` | **Send Email.** Send an email from the user's connected mailbox. 'from' must be one of the user's connected sending addresses; to/cc/bcc are arrays of email addresses; content is the message body. | Writes |
| `update_email_flags` | **Update Email Flags.** Change an email's flags: read/unread, favorite, archive, spam, or delete/restore. | Destructive |
| `update_email_tag_color` | **Update Email Tag Color.** Change the color of an existing email tag/label. tagName identifies the tag (tags are keyed by name); color is a 6-digit hex with leading '#' (e.g. #FF0000). | Writes |
| `update_inbox_visibility_preferences` | **Update Inbox Visibility Preferences.** Set whether the email/LinkedIn inboxes show only campaign-contact conversations: hideNonCampaignEmails and/or hideNonCampaignLinkedInMessages (booleans, at least one). | Writes |

## Email accounts and sending domains

Connected mailboxes, sharing them with teammates, warmup, and purchased sending domains.

| Tool | What it does | Access |
| - | - | - |
| `bulk_share_email_accounts` | **Bulk Share Email Accounts.** Share several owned email accounts with one teammate (sharedWithUserId + permissions\[] of "USE\_IN\_CAMPAIGN"/"USE\_AND\_READ\_INBOX"). | Writes |
| `bulk_unshare_email_accounts` | **Bulk Unshare Email Accounts.** DESTRUCTIVE: Revoke one teammate's access (sharedWithUserId) across several owned email accounts; omit permissions\[] to revoke all access. | Destructive |
| `bulk_update_email_accounts` | **Bulk Update Email Accounts.** Bulk-update profile fields (profileUpdate: \{name?, title?, capacity?, signature?} — at least one) across several owned email accounts. | Writes |
| `connect_purchased_mailbox` | **Connect Purchased Mailbox.** Connect a mailbox the team already purchased through FuseAI as a sending account. mailboxId is the RESELLER id the user can copy from the app's Domain Management mailboxes table (NOT a Mongo \_id). | Writes |
| `connect_purchased_mailboxes` | **Connect Purchased Mailboxes.** Connect several mailboxes the team already purchased through FuseAI as sending accounts in one call. mailboxIds are the RESELLER ids from the app's Domain Management mailboxes table (NOT Mongo \_ids), max 25. | Writes |
| `deactivate_mailbox` | **Deactivate Mailbox.** DESTRUCTIVE: Deactivate (archive) a purchased mailbox — it stops sending. Identify it by domainName + email (both), or by the reseller mailboxId if the user supplies it from the app's Domain Management table. | Destructive |
| `deactivate_sending_domain` | **Deactivate Sending Domain.** DESTRUCTIVE: Deactivate (archive) a purchased sending domain by domainName — its mailboxes stop sending. | Destructive |
| `disconnect_email_account` | **Disconnect Email Account.** DESTRUCTIVE: Disconnect a connected email sending account (by emailAddress) — campaigns stop sending from it and its inbox sync ends. | Destructive |
| `get_domain_visibility_settings` | **Get Domain Visibility Settings.** Read who on the team can see the purchased domains/mailboxes (PRIVATE \| ADMINS\_ONLY \| ALL\_MEMBERS). | Read-only |
| `list_email_account_shares` | **List Email Account Shares.** List who an owned email account (by emailAddress) is shared with, and with which permissions. | Read-only |
| `list_email_accounts` | **List Email Accounts.** List the user's connected email sending accounts. Returns each account's email address — use it as the 'from' address when sending/replying, and as 'emailAddress' for AI email composition. | Read-only |
| `list_sending_domains` | **List Sending Domains.** List the team's FuseAI-purchased sending domains (id, domainName, status, forwarding). | Read-only |
| `list_shared_email_accounts` | **List Shared Email Accounts.** List email accounts that teammates have shared WITH the user (optional onlyActive filter) — the counterpart of list\_email\_account\_shares. | Read-only |
| `list_tracking_domains_tool` | **List Tracking Domains.** Lists the team's custom email tracking domains (id, hostname, status, isDefault). | Read-only |
| `reactivate_mailbox` | **Reactivate Mailbox.** Reactivate a previously deactivated purchased mailbox. Identify it by domainName + email (both), or by the reseller mailboxId if the user supplies it from the app's Domain Management table. | Writes |
| `reactivate_sending_domain` | **Reactivate Sending Domain.** Reactivate a previously deactivated purchased sending domain by domainName. | Writes |
| `remove_domain_forwarding` | **Remove Domain Forwarding.** DESTRUCTIVE: Remove a purchased sending domain's web forwarding (by domainName) — visitors to the domain stop being redirected. | Destructive |
| `set_domain_forwarding` | **Set Domain Forwarding.** Set or update a purchased sending domain's web forwarding: domainName + forwardTo (http/https URL). | Writes |
| `set_email_account_active_status` | **Set Email Account Active Status.** Toggle whether an email account is used in campaigns ("active"): emailAddress + isActive. | Writes |
| `share_email_account` | **Share Email Account.** Share an owned email account with a teammate: emailAddress, sharedWithUserId (from the team-members list), permissions\[] of "USE\_IN\_CAMPAIGN" and/or "USE\_AND\_READ\_INBOX". | Writes |
| `unshare_email_account` | **Unshare Email Account.** DESTRUCTIVE: Revoke a teammate's access to an owned email account (emailAddress + sharedWithUserId). | Destructive |
| `update_domain_visibility_settings` | **Update Domain Visibility Settings.** Set who on the team can see the purchased domains/mailboxes: visibilityMode "PRIVATE" \| "ADMINS\_ONLY" \| "ALL\_MEMBERS". | Writes |
| `update_email_account_profile` | **Update Email Account Profile.** Update one email account's settings (by emailAddress): sender name, title, capacity (daily send limit, preserves today's usage), signature (HTML, sanitized), isAutoOppEnabled (auto-opportunity detection). | Writes |

## LinkedIn

Connected LinkedIn accounts, chats and messages, invitations and connections.

| Tool | What it does | Access |
| - | - | - |
| `bulk_share_linkedin_accounts` | **Bulk Share LinkedIn Accounts.** Share several LinkedIn accounts with one teammate (sharedWithUserId + permissions\[] of "USE\_IN\_CAMPAIGN"/"USE\_AND\_READ\_INBOX"). | Writes |
| `bulk_unshare_linkedin_accounts` | **Bulk Unshare LinkedIn Accounts.** DESTRUCTIVE: Revoke one teammate's access (sharedWithUserId) across several LinkedIn accounts; omit permissions\[] to revoke all access. | Destructive |
| `bulk_update_linkedin_accounts` | **Bulk Update LinkedIn Accounts.** Bulk-update settings (profileUpdate: \{title?, dailyUsageLimits?, weeklyUsageLimits?, signature?} — at least one) across several LinkedIn accounts. | Writes |
| `check_linkedin_relation` | **Check LinkedIn Relation.** Check whether the user is connected to a LinkedIn profile (by its slug/public id). | Read-only |
| `disconnect_all_linkedin_accounts` | **Disconnect All LinkedIn Accounts.** DESTRUCTIVE: Disconnect ALL of the user's LinkedIn accounts at once — campaigns and inbox sync stop for every account, and reconnecting requires the interactive login in the FuseAI app. | Destructive |
| `disconnect_linkedin_account` | **Disconnect LinkedIn Account.** DESTRUCTIVE: Disconnect one LinkedIn account (by accountId) — campaigns stop using it and its inbox sync ends; reconnecting requires the interactive login in the FuseAI app. | Destructive |
| `generate_linkedin_reply` | **Generate LinkedIn reply.** AI-draft a LinkedIn reply in the user's voice for a chat. Returns the draft text only — it does NOT send anything. | Writes |
| `get_linkedin_account` | **Get LinkedIn Account.** Read one connected LinkedIn account by providerId (from list\_linkedin\_accounts): status, limits, signature, sharing. | Read-only |
| `get_linkedin_chat` | **Get LinkedIn Chat.** Get the full message thread of one LinkedIn chat by chatId. | Read-only |
| `get_linkedin_chat_by_url` | **Find LinkedIn Chat by Profile URL.** Find the existing LinkedIn chat with a person by their profile URL (returns the chat incl. chatId). | Read-only |
| `list_linkedin_account_shares` | **List LinkedIn Account Shares.** List who a LinkedIn account (by providerId) is shared with, and with which permissions. | Read-only |
| `list_linkedin_accounts` | **List Connected LinkedIn Accounts.** List the user's connected LinkedIn accounts. Returns each account's accountId. | Read-only |
| `list_linkedin_chats` | **List LinkedIn Chats.** List the user's LinkedIn conversations. Each chat includes its accountId and chatId. | Read-only |
| `list_linkedin_connections` | **List LinkedIn Connections.** List the user's LinkedIn connections. Returns each connection's profileId. | Read-only |
| `list_linkedin_invitations` | **List LinkedIn Invitations.** List LinkedIn connection invitations (received or sent). Each invitation includes its invitationId, sharedSecret, and provider. | Read-only |
| `respond_to_linkedin_invitation` | **Respond to LinkedIn Invitation.** Accept or decline a received LinkedIn connection invitation. Requires the invitation's invitationId, sharedSecret, and provider. | Writes |
| `send_linkedin_invitation` | **Send LinkedIn Invitation.** Send a LinkedIn connection invitation to a profile URL from a connected account. | Writes |
| `send_linkedin_message` | **Send LinkedIn Message.** Send a message in an existing LinkedIn conversation. chatId is the LinkedIn conversation's id; accountId is the id of the connected LinkedIn account that sends the message. | Writes |
| `share_linkedin_account` | **Share LinkedIn Account.** Share a LinkedIn account with a teammate: providerId, sharedWithUserId (from the team-members list), permissions\[] of "USE\_IN\_CAMPAIGN" and/or "USE\_AND\_READ\_INBOX". | Writes |
| `start_linkedin_chat` | **Start LinkedIn Chat.** Start a NEW LinkedIn chat with one or more profiles and send the first message. Returns the new chatId. | Writes |
| `unshare_linkedin_account` | **Unshare LinkedIn Account.** DESTRUCTIVE: Revoke a teammate's access to a LinkedIn account (providerId + sharedWithUserId). | Destructive |
| `update_linkedin_account_settings` | **Update LinkedIn Account Settings.** Update one LinkedIn account's settings (by accountId): isActive (use in campaigns), title, dailyUsageLimits / weeklyUsageLimits (\{invitations, messages}), signature. | Writes |
| `update_linkedin_chat_read` | **Mark LinkedIn Chat as Read.** Mark a LinkedIn chat as read (set isRead to true; marking a chat unread is not supported). | Writes |

## Signal agents

Signal agents (called signal monitors in tool names) and one-off Google Maps, LinkedIn and Sales Navigator scrapes.

| Tool | What it does | Access |
| - | - | - |
| `activate_signal_monitor` | **Activate signal monitor.** Activate a DRAFT signal monitor (one just created, in 'initializing' status) by its documentId so it starts running. | Writes |
| `create_companies_watcher_monitor` | **Create companies-watcher monitor.** Create a Companies Watcher signal monitor: watch the companies in one or more SOURCE lists for job postings, LinkedIn posts, press mentions, funding milestones, new hires with given titles (delivers the hired PEOPLE into a new contact list), status changes… | Writes |
| `create_company_department_headcount_monitor` | **Create company-department-headcount monitor.** Create a Company Department Headcount signal monitor: track companies whose named department is within a headcount range. | Writes |
| `create_company_employee_job_location_in_two_countries_monitor` | **Create employee-job-location monitor.** Create an Employee-Job-Location-in-Two-Countries signal monitor: track companies whose employees work across two countries, scoped to one industry/region/headcount. | Writes |
| `create_company_headcount_growth_monitor` | **Create company-headcount-growth monitor.** Create a Company Headcount Growth signal monitor: track companies growing headcount within a % range, scoped to one industry/region/headcount bucket. | Writes |
| `create_company_headcount_growth_over_baseline_monitor` | **Create headcount-growth-over-baseline monitor.** Create a Headcount-Growth-Over-Baseline signal monitor: track companies that grow past a baseline headcount by a given amount within a timeframe. | Writes |
| `create_first_person_hired_in_department_monitor` | **Create first-person-hired-in-department monitor.** Create a First-Person-Hired-in-Department signal monitor: detect the first hire into a given department at companies matching the filters. | Writes |
| `create_first_person_hired_internationally_monitor` | **Create first-person-hired-internationally monitor.** Create a First-Person-Hired-Internationally signal monitor: detect a company's first international hire, scoped to one industry/region/headcount. | Writes |
| `create_funding_announcement_monitor` | **Create funding-announcement monitor.** Create a Funding Announcement signal monitor: track companies that announce funding rounds. | Writes |
| `create_google_maps_scrape` | **Create Google Maps search.** Find local businesses of one type on Google Maps and save them to a NEW company list ('Google Maps Search'). | Writes |
| `create_job_changes_watcher_monitor` | **Create job-changes watcher monitor.** Create a Job Changes watcher: track the canonical contacts of one or more SOURCE prospect lists for job title / company changes, delivered monthly to a new dedicated results list. listId/listIds identify the existing SOURCE list(s) to watch; listName is the… | Writes |
| `create_job_posting_in_location_monitor` | **Create job-posting-in-location monitor.** Create a Job-Posting-in-Location signal monitor: track all job postings within one region, optionally narrowed by industry/headcount. | Writes |
| `create_job_posting_monitor` | **Create job-posting monitor.** Create a Job Postings signal monitor: find companies hiring for specific titles/keywords in a region. | Writes |
| `create_linkedin_post_monitor` | **Create LinkedIn-post monitor.** Create a LinkedIn Posts signal monitor: find people posting about specific topics/keywords on LinkedIn, optionally narrowed by author company/title/location and industry. | Writes |
| `create_linkedin_post_scrape` | **Create LinkedIn post scrape.** Scrape engagement (likers/commenters) from specific LinkedIn post URLs into a list — 'LinkedIn Post Engagement'. | Writes |
| `create_linkedin_profile_scrape` | **Create LinkedIn profile scrape.** Scrape recent post engagement from specific LinkedIn profile URLs into a list. Requires profileUrls and fieldsToScrape. | Writes |
| `create_people_watcher_monitor` | **Create people-watcher monitor.** Create a People Watcher signal monitor: watch the people in one or more SOURCE prospect lists for profile/job changes, new LinkedIn posts, comments and reactions on LinkedIn posts, turning on Open to Work, or turning on Hiring. listId/listIds identify the… | Writes |
| `create_person_discovery_via_filters_monitor` | **Create person-discovery monitor.** Create a Person-Discovery-via-Filters signal monitor: continuously surface people matching a filter set. | Writes |
| `create_person_starting_new_job_monitor` | **Create person-starting-new-job monitor.** Create a Person-Starting-New-Job signal monitor: detect people who recently changed jobs, scoped to an industry plus optional company/title filters. | Writes |
| `create_sales_navigator_scrape` | **Create Sales Navigator scrape.** Scrape the leads of a Sales Navigator people-search URL into a list ('Sales Navigator Search'). | Writes |
| `create_web_monitor` | **Create web monitor.** Create a Web Monitor: a recurring plain-language web search that surfaces PEOPLE or COMPANIES matching the described signal into a new dedicated results list. | Writes |
| `delete_signal_monitor` | **Delete signal monitor.** Permanently delete a signal monitor and pause its subscriptions. DESTRUCTIVE — only call after the user has explicitly confirmed the deletion. | Destructive |
| `duplicate_signal_monitor` | **Duplicate signal monitor.** Duplicate an existing signal monitor into a new DRAFT (then activate it). Some advanced filters may need to be re-supplied before activating. | Writes |
| `get_signal_monitor_creation_config` | **Get signal-monitor creation config.** Read a monitor's creation-shaped config in ANY status: the stored snapshot for drafts, a best-effort reconstruction from the live doc otherwise (unrecoverable fields listed in lossyFields). | Read-only |
| `get_signal_monitor_draft` | **Get signal-monitor draft.** Read a draft monitor's saved creationConfig (and type) so you can review or edit it before activating. | Read-only |
| `list_signal_monitors` | **List signal monitors.** List the user's signal monitors (agents). Use this to find a monitor's id and status before activating or pausing it. | Read-only |
| `update_signal_monitor_draft` | **Update signal-monitor draft.** Overwrite a draft monitor's creationConfig so you can finish or adjust it before activating. | Writes |
| `update_signal_monitor_source_lists` | **Update signal-monitor source lists.** Replace the source prospect/company lists feeding a people- or companies-watcher monitor, by its documentId. | Writes |
| `update_signal_monitor_status` | **Update signal-monitor status.** Set an existing (already-running) signal monitor's status to active or paused, by its documentId. | Writes |

## Smart Actions and tasks

The Smart Actions feed and the Tasks hub.

| Tool | What it does | Access |
| - | - | - |
| `bulk_execute_action_feed` | **Bulk Execute Smart Actions Feed.** Bulk-apply a STATUS change (mark\_complete / mark\_active) or DELETE to many feed items matching a filter, in one job. | Destructive |
| `complete_task` | **Complete Task.** Mark a task done on behalf of the user, with an optional note and an optional sales signal (interested or not\_interested). | Writes |
| `create_task` | **Create Task.** Create a task in the Tasks hub: a to-do, call, email or LinkedIn step for the caller or a teammate (assignedToUserId from list\_team\_members; defaults to the caller and must be an active team member). | Writes |
| `delete_action_feed_item` | **Delete Smart Actions Feed Item.** Permanently delete (dismiss) a Smart Actions feed item by id. Destructive — confirm with the user before calling unless they already approved. | Destructive |
| `enrich_action` | **Enrich Smart Action Contact.** Enrich the contact behind an action (find their email/contact data) by id — useful before sending when contact info is missing. | Writes |
| `execute_action` | **Execute Smart Action.** Execute (send) a single suggested action from the Smart Actions feed, by its id. | Writes |
| `get_action_detail` | **Get Smart Action Detail.** Get the full detail of a single Smart Actions item by its id. Takes the actionId from a feed row (not the actionFeedId). | Read-only |
| `list_action_feed` | **List Smart Actions Feed.** List items in the Smart Actions feed (the suggested next actions). Supports pagination, sort, free-text search, and filters (status, category, priority, actionType, sourceType, icpMatch, signalType). | Read-only |
| `list_tasks` | **List Tasks.** List the Tasks hub rows the user may see (their own and their teammates' open work by default): to-dos, calls, emails, LinkedIn steps, call batches and AI-reply reviews, each with id, type, status, title, due date, priority, assignee, contact and source. | Read-only |
| `update_action_feed_item` | **Update Smart Actions Feed Item.** Update a Smart Actions feed item (e.g. change its status or priority) by id. Takes the actionFeedId (feed card id), not the actionId. | Writes |
| `update_task` | **Update Task.** Update an existing task by id: reassign it to a teammate via assignedToUserId (from list\_team\_members; the change sticks through later system refreshes), or change its title, instructions, link, dueAt, priority, pin or in-progress state. | Writes |
| `update_user_action` | **Update Smart Action.** Edit a single action (e.g. tweak the drafted message/subject or its config) by id, before sending it. | Writes |

## Website visitors

Visitor reports and trends, ICPs, and the tracking tag and its settings.

| Tool | What it does | Access |
| - | - | - |
| `create_icp` | **Create ICP.** Create an Ideal Customer Profile (ICP). Filters use \{status:'include'\|'exclude', value, label} entries; location is a list of place names. | Writes |
| `delete_icp` | **Delete ICP.** Delete an ICP by its exact name. DESTRUCTIVE — only after the user explicitly confirms. | Destructive |
| `get_website_allowed_domains` | **Get Website Tracking Config.** Read-only: the website-tracking config — the allowed domains and tracked pages the visitor pixel ingests. | Read-only |
| `get_website_credits` | **Get Website Credits.** Read-only: the website-intent (visitor de-anonymization) credit balance and monthly limit. | Read-only |
| `get_website_intent_analytics` | **Website Intent Analytics.** Overall website-visitor KPI metrics for a window (totalVisitors, totalUniqueCompanies, totalUniquePeople, totalHotVisits). | Read-only |
| `get_website_tag_script` | **Get Tracking Tag Script.** Read-only: the visitor-tracking tag/script snippet the user installs on their website. | Read-only |
| `get_website_visitor_analytics_by_period` | **Website Visitor Trend.** Read-only: website visitor trend over time (visitorsOverTime buckets of companies/people) from a `since` start date up to an optional `to` end date (defaults to now). | Read-only |
| `get_website_visitor_report` | **Website Visitor Report.** Read-only: the website visitor intent report — the top companies (mode TOP\_COMPANIES), people (mode TOP\_PEOPLE) or industries (mode TOP\_INDUSTRIES) that visited the user's website, ranked by visit count. | Read-only |
| `list_icps` | **List ICPs.** List the user's Ideal Customer Profiles (ICPs), each with its id and name. | Read-only |
| `test_website_tag` | **Test Website Tracking Tag.** Read-only: verify the visitor-tracking tag is installed and loading on a given website. | Read-only |
| `update_icp` | **Update ICP.** Update an existing ICP by its id; pass the full desired filter set. | Writes |
| `update_website_allowed_domains` | **Update Website Tracking Config.** Update the website-tracking config (allowed domains + tracked pages). This OVERWRITES the current config, so confirm with the user before calling it. | Destructive |
| `update_website_credits_limit` | **Set Website Credits Limit.** Set the website-intent monthly credit cap. Changes how many credits can be spent on visitor de-anonymization, so confirm with the user before calling it. | Writes |

## Power dialer

Call history, transcripts, callbacks you owe, per-list insights and rented numbers.

| Tool | What it does | Access |
| - | - | - |
| `contact_call_engagement_summary` | **Contact Call Engagement Summary.** Per-contact power-dialer engagement digest over a time range (default: the 30 days up to timeRangeTo, or up to now; read-only): total call attempts, connected conversations, per-disposition counts, latest outcome with note and a short transcript snippet with… | Read-only |
| `deactivate_twilio_phone_number` | **Deactivate Twilio Phone Number.** DESTRUCTIVE: Release/deactivate a power-dialer number — rented or verified caller-ID — (phoneNumberId = the number's \_id from the rented-numbers list). | Destructive |
| `dialer_prospect_list_insights` | **Dialer Prospect List Insights.** Get power-dialer insights broken down per prospect list (paginated via page/limit, searchable). | Read-only |
| `get_call_history` | **Get Call History.** Fetch the user's power-dialer call history (read-only). Returns recent calls; supports paging (page, pageSize), an optional contact-name or phone-number search term, and optional filters: toNumber / fromNumber (free-text phone match), directions… | Read-only |
| `get_call_transcripts_by_disposition` | **Get Call Transcripts By Disposition.** Fetch the newest power-dialer calls that match the requested disposition(s), each with its full, speaker-labeled transcription (Agent / Contact / Machine; read-only; calls without a transcript are skipped). | Read-only |
| `get_calls_by_duration` | **Get Calls By Duration.** Use this tool whenever the user asks for calls that lasted longer than X seconds/minutes. | Read-only |
| `get_contact_call_summary` | **Get Contact Call Summary.** Get an all-history calling summary for ONE contact (read-only): attempts, connected calls, disposition counts, first/last call, total/average/longest recorded duration, meaningful-call count, and the latest meaningful call with speaker-labeled transcript. | Read-only |
| `get_contact_call_transcripts` | **Get Contact Call Transcripts.** Fetch the most recent power-dialer calls for ONE contact, each with its full, speaker-labeled transcription (Agent / Contact / Machine), disposition, note, duration and campaign/list context (read-only). | Read-only |
| `get_follow_up_callbacks` | **Get Follow-Up Callbacks.** List contacts the user still owes a callback: contacts whose MOST RECENT call has a follow-up-worthy connected disposition and who have not been called since — each with that call's full, speaker-labeled transcription (Agent / Contact / Machine) and note so… | Read-only |
| `get_stale_meaningful_contacts` | **Get Stale Meaningful Contacts.** Find contacts worth re-engaging because they had at least one meaningful connected call but have had no call of any outcome recently (read-only). | Read-only |
| `list_rented_phone_numbers` | **List Rented Phone Numbers.** List the team's power-dialer phone numbers (Twilio — the active provider): \_id, phoneNumber, name, health/status. | Read-only |

## Automations

Automations, their runs, and the apps connected to them.

| Tool | What it does | Access |
| - | - | - |
| `cancel_automation_execution` | **Cancel Automation Execution.** Cancel one execution of an automation: a run queued, running or waiting (parked on a wait step) ends as cancelled and nothing after its current step runs. | Destructive |
| `create_automation` | **Create Automation.** Create an automation as a graph. Body: name, summary (one plain sentence), triggers \[\{nodeKey, label (2-5 words), description (one short sentence on what starts this rule), attributes}] (min 1, any one fires the rule), steps \[\{stepId, nodeKey, label (2-5… | Writes |
| `create_composio_connect_link` | **Create Composio Connect Link.** Create a sign-in link for one app (body: toolkit, the app's slug from search\_composio\_toolkits). | Writes |
| `delete_automation` | **Delete Automation.** DESTRUCTIVE: Soft-delete an automation by automationId — it stops running and disappears from the list. | Destructive |
| `get_automation` | **Get Automation.** Read a single automation by automationId (full graph, status, health, schedule). | Read-only |
| `get_automation_analytics_summary` | **Automation Analytics Summary.** Automations analytics summary (rule counts by status, auto-paused rules, successful executions today and this week, latest failure). | Read-only |
| `get_automation_execution` | **Get Automation Execution.** Read one execution of an automation with every step's output and fan-out items. | Read-only |
| `list_automation_executions` | **List Automation Executions.** List an automation's executions, newest first, with per-step status, summaries, timing, credits and fan-out counts. | Read-only |
| `list_automation_nodes` | **List Automation Nodes.** List the automations node catalog: every trigger, gate (condition) and action node with its nodeKey, entityType, the exact attributes it accepts, and its outputSchema. | Read-only |
| `list_automations` | **List Automations.** List the user's automations (id, name, summary, status, triggers, steps, health, last execution, executions in the last 7 days). | Read-only |
| `list_composio_connections` | **List Composio Connections.** List the apps the user has connected through Composio. Returns connections, each with connectedAccountId, toolkit (the app's slug, e.g. googlecalendar, notion, zendesk), toolkitName, toolkitLogo and status (ACTIVE is usable; EXPIRED or FAILED needs a fresh… | Read-only |
| `list_composio_trigger_types` | **List Composio Trigger Types.** List the events one app can fire a rule with (query: toolkit slug; optional limit, default 20, max 50). | Read-only |
| `run_composio_tool` | **Run Composio Tool.** Run ONE read-only lookup in an app the user connected through Composio, while composing, to resolve the ids a rule needs (which calendar, form, database, board, project): body tool (a lookup slug from search\_composio\_tools, e.g. | Writes |
| `scrape_web` | **Scrape Web.** Scrape the web into a structured list. source: \{kind:'page', url} for one page, \{kind:'pages', urls} for up to 10, or \{kind:'search', query, includeDomains?, excludeDomains?, recencyMinutes?, domainType?:'web'\|'news'} to search first. extract.outputSchema is… | Writes |
| `search_composio_toolkits` | **Search Composio Toolkits.** Search Composio's app catalog by name (query: search, e.g. 'google calendar'; optional limit, default 20, max 50). | Read-only |
| `search_composio_tools` | **Search Composio Tools.** List the actions one app offers (query: toolkit slug; optional search to narrow by name, e.g. | Read-only |
| `update_automation` | **Update Automation.** Update an automation by automationId: rename, change the summary, replace triggers/steps (same shapes as create\_automation, validated against list\_automation\_nodes), set expiresAt, or change status — status "paused" pauses the rule, "active" resumes it and… | Writes |
| `wake_automation_execution` | **Wake Automation Execution.** End the wait an execution is parked on, now: its wait step's recheck runs again and the run goes on without waiting for the target (the wait's cancel rule still applies). | Writes |

## CRM sync and Slack

CRM connection and sync settings, pulling from and pushing to your CRM, owner mapping, and Slack messages.

| Tool | What it does | Access |
| - | - | - |
| `disconnect_integration` | **Disconnect Integration.** DESTRUCTIVE: disconnect an integration (revokes its tokens). `service` ∈ hubspot\|salesforce\|zoho\|pipedrive\|attio\|slack. | Destructive |
| `get_available_custom_properties` | **Get Available Custom Properties.** Live catalog of custom contact properties available on the CRM — each entry carries the property's crmPropertyName. | Read-only |
| `get_crm_integration_data` | **Get CRM Integration Data.** Get connected CRM / integration status and auth data (the Integrations settings tab). | Read-only |
| `get_crm_settings` | **Get CRM Settings.** Get CRM sync settings + the field catalog (availableContactFields, disabledContactFields, customContactProperties) the Fields tab renders. | Read-only |
| `get_crm_team_connection` | **Get CRM Team Connection.** Get the team-level CRM connection: which CRM the team has connected and which members are connected (their userIds can be used as userForSyncId). | Read-only |
| `get_fuse_property_mappings` | **Get Fuse Property Mappings.** Get the Fuse properties that can be written to the CRM (availableFuseProperties, e.g. | Read-only |
| `get_slack_settings` | **Get Slack Settings.** Read the current Slack integration settings (e.g. the connected notification channel). | Read-only |
| `list_crm_owners` | **List CRM Owners.** List CRM owners (each owner's crmUserId + current mapping). Needs the connected CRM integration's crmIdentifier and crmAccountId. | Read-only |
| `pull_crm_activities` | **Pull CRM Activities.** Pull activities (calls, emails, meetings, notes, tasks) from the connected CRM into the FuseAI activities hub (async, safe — no external writes). | Writes |
| `pull_crm_companies` | **Pull CRM Companies.** Pull companies from the connected CRM into FuseAI (async, safe — no external writes). | Writes |
| `pull_crm_contacts` | **Pull CRM Contacts.** Pull contacts from the connected CRM into FuseAI (async, safe — no external writes). | Writes |
| `push_crm_companies` | **Push CRM Companies.** HIGH-IMPACT: push companies FROM FuseAI INTO the customer's CRM (async). Confirm with the user first. | Writes |
| `push_crm_contacts` | **Push CRM Contacts.** HIGH-IMPACT: push contacts FROM FuseAI INTO the customer's CRM (async). Confirm with the user first. | Writes |
| `push_fuse_properties` | **Push Fuse Properties.** Start a sync of the team's mapped Fuse properties (e.g. LinkedIn connection status) to the connected CRM now instead of at the next hourly run (async). | Writes |
| `send_slack_message` | **Send Slack Message.** Send a Slack message to the user's connected workspace: a channel (channelId or #name), a DM (slackUserId = Slack member id), or the integration's configured channel when neither is given. | Writes |
| `set_crm_owner_mapping` | **Set CRM Owner Mapping.** Map CRM owners to FuseAI users. Pass `mappings` as an array of \{ crmOwnerId, mappedUserId }: `crmOwnerId` is the `_id` of an owner row from list\_crm\_owners (not the CRM's own user id); `mappedUserId` is the FuseAI user id (null to unmap). | Writes |
| `set_custom_properties` | **Set Custom Properties.** Set the team's enabled custom contact properties (max 100). Each crmPropertyName must be a custom property that exists on the connected CRM. | Destructive |
| `set_fuse_property_mappings` | **Set Fuse Property Mappings.** HIGH-IMPACT: set which Fuse properties FuseAI writes onto the team's CRM contact records, and into which CRM property each goes. | Writes |
| `sync_crm_owners` | **Sync CRM Owners.** Refresh the local CRM-owners pool from the external CRM. Use when locally stored CRM-owner data looks stale. | Writes |
| `update_contact_crm_owner` | **Update Contact CRM Owner.** Reassign one contact's owner on the external CRM. Needs `newCrmOwnerId` (the new owner's CRM user id), the FuseAI `contactId`, the `crmContactId`, and `crmAccountId`. | Writes |
| `update_crm_settings` | **Update CRM Settings.** Update CRM sync settings: profileType (lead\|contact\|null — lead only for CRMs with a lead object: Salesforce, Zoho), auto push/pull flags, userForSyncId, and disabledContactFields (the Fields enable/disable list — entries must be valid availableContactFields… | Writes |
| `update_slack_settings` | **Update Slack Settings.** Update Slack integration settings — set the channel that notifications post to. | Writes |

## Research

Deep Research, lead research, web search and scraping, Google Maps and Jobs lookups, Fuse Brain, and research provider keys.

| Tool | What it does | Access |
| - | - | - |
| `ask_fuse_brain` | **Ask Fuse Brain.** Ask the Fuse Brain — living relationship files for ENGAGED contacts/companies, built from the team's real emails, LinkedIn messages, calls and meetings. | Read-only |
| `deep_research_start` | **Start Deep Research.** Starts an asynchronous Fuse Deep Research run: over several minutes it researches the request across the web in the background and produces a markdown report, plus — when the request is to find people or companies — a new Fuse prospect list. | Writes |
| `deep_research_status` | **Deep Research Status.** Checks a Fuse Deep Research run started with deep\_research\_start. Returns the run status (queued/planning/running/generating\_csv/uploading/completed/failed/cancelled) and, once completed, the full markdown research report plus the id of any produced prospect… | Read-only |
| `delete_provider_key` | **Delete Provider Key.** DESTRUCTIVE: Delete the user's saved API key for a Deep Research provider (by providerId) — future runs fall back to the platform key (or stop working for byok-required providers). | Destructive |
| `get_provider_key_catalog` | **Get Provider Key Catalog.** Full Deep Research provider catalog, grouped by category: each provider's id, keyMode (platform \| byok \| byok-required), whether the user already saved a key (hasUserKey), and docs link. | Read-only |
| `google_jobs_search_tool` | **Google Jobs Search.** This tool is used to search google jobs with a keyword or phrase. | Read-only |
| `google_maps_search_tool` | **Google Maps Search.** This tool is used to search google maps with a keyword or phrase. | Read-only |
| `lead_researcher_tool` | **Lead Research.** Researches the internet for contacts and companies and saves the results to a leads list in the crm — a new list, or an existing one when existingListId is given. | Writes |
| `list_provider_keys` | **List Provider Keys.** List the Deep Research providers the user has saved their own API key for (provider id + metadata; keys themselves are never returned). | Read-only |
| `search_or_scrape_web_with_firecrawl_api_tool` | **Web Search and Scrape.** A powerful web tool with two modes. (1) SEARCH: pass `query` (a search string) to find the most up-to-date information across the public internet. | Read-only |

## Workspace and team

Company profile, team members and invitations, writing styles, Knowledge Hub profiles, and credits.

| Tool | What it does | Access |
| - | - | - |
| `create_knowledge_hub_profile` | **Create Knowledge Hub profile.** Create the Knowledge Hub profile of the user's team from one or more website URLs (async — it returns 'processing' and the profile finishes building in the background). | Writes |
| `get_credit_prices` | **Get Credit Prices.** Read-only: what platform actions cost in credits, from the same rates the charges use: people and company search results, saving to lists, email/phone/deep-search enrichment (charged only when something is found), email validation, and campaign email sends… | Read-only |
| `get_credits_balance` | **Get Credits Balance.** Read-only: returns the user's current FuseAI credit balance as \{ balance }. Use it when the user asks how many credits they have, and BEFORE starting a credit-consuming bulk operation (e.g. bulk enrichment) to check the batch is affordable — bulk operations… | Read-only |
| `get_credits_spend_by_product` | **Get Credits Spend by Product.** Read-only (POST only so teammate ids fit in the body): credits spent per product over a date window, as \{ points: \[\{ date, isoDate, products: \[\{ product, value }] }] } — one point per time bucket (daily, weekly, monthly or quarterly by window length),… | Read-only |
| `get_credits_usage` | **Get Credits Usage.** Read-only: the user's credits for the current period as \{ used, available, total, periodStartDate, periodEndDate, oneTimeCreditsHoldback }. periodStartDate and periodEndDate bound the usage window: the billing period, or the last 30 days ending today when… | Read-only |
| `get_user_info` | **Get User Info.** Read the user + company record: company name/website, enrichment preferences, and subscription. | Read-only |
| `invite_team_member` | **Invite Team Member.** Invite one or more people to the team by email, each with a role (ADMIN or MEMBER). | Writes |
| `list_knowledge_hub_profiles` | **List Knowledge Hub profiles.** List the user's Knowledge Hub profiles (company knowledge / ICP context configured in settings). | Read-only |
| `list_team_invitations` | **List Team Invitations.** List the user's pending team invitations. Each carries its invitation id (the `_id`). | Read-only |
| `list_team_members` | **List Team Members.** List the members of the user's team / workspace. | Read-only |
| `list_writing_styles` | **List Writing Styles.** List the user's writing styles (id, name, rules, isDefault). The default style is applied when a campaign has none selected. | Read-only |
| `quick_find` | **FuseAI quick find.** Find the right FuseAI page/feature to navigate to from a natural-language query (e.g. | Read-only |
| `respond_to_team_invitation` | **Respond To Team Invitation.** Accept or reject a pending team invitation the user has received. | Writes |
| `update_company` | **Update Company.** Update the user's company name and/or website. Pass at least one of companyName / companyDomain. | Writes |
| `update_enrichment_preferences` | **Update Enrichment Preferences.** Update the user's contact-enrichment preferences. Pass at least one field. | Writes |
| `update_knowledge_hub_profile` | **Update Knowledge Hub profile.** Update an existing Knowledge Hub profile's name, source URLs, or extra info, identified by its profile id. | Writes |
| `update_team_member` | **Update Team Member.** Change a team member's role and/or credits cap. Pass at least one of role / creditsCap. | Writes |
| `update_writing_style` | **Update Writing Style.** Update a writing style by writingStyleId: rename it or replace the rules\[] (tone, message length, formatting — one instruction per rule). | Writes |
| `update_writing_style_from_text` | **Update Writing Style From Text.** Replace a writing style's rules with rules AI-extracted from pasted text (by writingStyleId). | Writes |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.