Skip to content

MCP CRM Tools

Beta

Ten MCP tools that move data between DiscoLike and your CRM. Flows are live end-to-end, but expect rough edges while hardening completes.

Supported providers: hubspot, pipedrive, salesforce.

Connect the CRM once from the app under Settings > Integrations. Every tool below refuses to run without an active connection, and returns a re-authorization error if the stored token has expired — reconnect from the same screen.

Connection status is also readable over REST via GET /v1/crm/connections; see the CRM API.

ToolParametersWhat it does
push-to-crmquery_id, provider, mode, sf_target_objectPush a saved query’s companies or contacts into the CRM
crm-suppressprovider, kindSnapshot the CRM into an exclusion list
crm-import-companiesproviderImport the CRM’s companies as tagged DiscoLike domain lists
crm-match-companies Teamprovider, min_match_confidenceFind domains for domain-less CRM companies
crm-writeback-domainsprovider, query_id, min_confidenceWrite matched domains back onto CRM records
crm-match-contactsproviderFind emails for email-less CRM people
crm-writeback-emailsprovider, match_task_id, min_confidenceWrite matched emails back onto CRM records
crm-enrich-contactsprovider, icp_text, contacts_per_company, mode, sf_target_objectFind contacts at the CRM’s companies and push them in
crm-writeback-segmentsprovider, query_idWrite segment labels onto CRM records
crm-audit-companiesproviderTag each CRM company with its operating status

Every tool runs as a background job. The ones that return a task_id are asynchronous; results appear via list-saved-queries or directly on the CRM records as the job progresses.

ParameterValuesNotes
providerhubspot, pipedrive, salesforceRequired on every tool
modepush (default), enrichpush creates records that don’t exist yet and updates the ones that do. enrich only updates existing records — it never creates any.
sf_target_objectleads (default), accountsSalesforce only. Other providers ignore it.
min_confidence50–100, default 70Write-back floor: only matches at or above this confidence land on the CRM.
min_match_confidence50–100, default 50Match floor on crm-match-companies — 50 is the standard quality floor.

push-to-crm takes a saved query and syncs its results into the CRM. On Salesforce, sf_target_object decides whether companies land as Leads or Accounts.

“Push my Series A SaaS list to HubSpot”

crm-enrich-contacts goes the other direction from a company list: it reads the CRM’s companies by website domain, searches the DiscoLike contact index for people at those companies, and pushes the email-bearing matches in as contacts — auto-linked to their company (Salesforce Account, Pipedrive organization, HubSpot domain association). Describe who to find in icp_text as free text (“VP of Engineering or CTO”); contacts_per_company accepts 1–10 and defaults to 3. Covers up to 1,000 companies per run. Billed per net-new contact delivered.

“Find decision makers for my Salesforce accounts”

crm-suppress snapshots the CRM into an exclusion list, which then shows up in list-saved-queries. Pass its ID as exclusion_query_id to discover-similar-companies or search-contacts.

kind="companies" excludes by domain. kind="contacts" resolves the CRM’s contact emails against the DiscoLike contact index — CRM contacts whose email DiscoLike has never seen are skipped, since they can’t appear in results anyway.

“Don’t show me companies I already have in HubSpot”

Both fill-in flows are two-step: match first, review, then write back.

Domains for domain-less companies:

  1. crm-match-companies pulls the CRM’s companies without a website and runs them through company matching. Results save as a query named <N> companies from <Provider>.
  2. crm-writeback-domains takes that query_id and writes each matched domain onto its CRM record, skipping anything below min_confidence.

Emails for email-less people:

  1. crm-match-contacts pulls the CRM’s people lacking an email and matches them by name and company. Matched contacts are enriched with their email — billed per net-new contact. Returns a task_id.
  2. crm-writeback-emails takes that match_task_id and writes the emails back. Called while the match is still running, it rejects rather than writing partial results.

“Find websites for my domain-less Salesforce accounts, then update the records”

crm-import-companies exports every company with a website domain from the CRM and saves them as DiscoLike domain lists — 10,000 domains per list, tagged crm:<provider>. Use those lists as the input to any other DiscoLike operation.

crm-writeback-segments runs after segment-domains over CRM companies. Pass the segmentation query’s ID (it equals the segment task ID) and each company’s segment label lands on the CRM record matched by domain — a DiscoLike Segment property on HubSpot and Pipedrive, a DiscoLike segment: line inside Description on Salesforce. Unclustered companies are skipped.

crm-audit-companies checks every CRM company’s website against the DiscoLike index — including domains no longer actively indexed — and writes an operating status onto each record: active, closed, redirected to <newdomain>, or unknown. On HubSpot and Pipedrive the status lands in a DiscoLike Domain Status property, so you can filter on it and bulk-archive dead accounts natively; on Salesforce it’s a DiscoLike status: line in Description. Closed companies are also saved as a reviewable domain list. Covers up to 10,000 companies per run. Billed per net-new domain.

“Which of my HubSpot accounts are dead?”

ToolRequires
crm-match-companiesTeam
crm-match-contacts, crm-writeback-emails, crm-enrich-contactsContacts access
All othersSaved queries access