---
title: "Crono MCP Integration"
description: "A guide on how to integrate MCP in Crono"
url: https://help.crono.one/en/articles/77-crono-mcp-integration
collection: "Connections"
updated: 2026-11-05
language: en
---

# Crono MCP Integration

A guide on how to integrate MCP in Crono

Crono **MCP** enables **AI agents** (such as ChatGPT, Claude, and others) to securely connect to your Crono workspace and interact with your data directly from the chat interface.

Once connected, you can instruct your AI agent to:

-   Search and filter data
    
-   Create and update records
    
-   Enrich company and contact information
    
-   Manage sequences, tasks, and deals
    

Supported entities include:

-   Companies (Accounts)
    
-   Contacts (Prospects)
    
-   Sequences (Strategies)
    
-   Templates
    
-   Lists
    
-   Tasks
    
-   Deals (Opportunities)
    
-   Pipelines
    
-   Notes
    
-   AI & Enrichment data
    
-   Users
    
-   Reports
    
-   Custom fields
    

* * *

## ChatGPT Case

Before connecting Crono MCP to ChatGPT, ensure that:

1.  You have access to a ChatGPT workspace (or company account) with MCP connectors enabled
    
2.  You are logged into ChatGPT (web or desktop app)
    
3.  You have an active Crono subscription (**Ultra Plan** required)
    
4.  You have access to the Crono MCP Server URL
    

You can find the Crono MCP Server URL in: Crono → **Settings → Integrations → Connections.** You don't need any Client ID or key: the connection is authorized automatically when you log in to Crono.

⚠ **Security note:** Do **not** share personal access tokens, client secrets, or authorization credentials in ChatGPT messages. Complete authentication only through the official authorization flow.

* * *

## Crono MCP Server URL

Use the Crono MCP server URL provided by Crono when creating the connector in ChatGPT:

```javascript
https://mcp.crono.one/mcp

```

* * *

## Connect Crono MCP from ChatGPT Web App

Follow these steps:

1.  Open ChatGPT in your browser
    
2.  Go to **Settings**
    

![](https://staticfiles.gleap.io/gattachments/ERFF04W5LhlPgTPg7ZDSqRGrfVApqfUTuEIq56qpoTLYZ3VEpLlhEWHB4HsFnd9tND9sTlmlvKg.png)

3.  Navigate to **Connectors** or **Apps & Connectors**
    
4.  Open **Advanced Settings** and enable **Developer Mode**
    
5.  Return and click **Create App**
    

![](https://staticfiles.gleap.io/gattachments/gwJ4i8v2gdGfVgyiBLz5tSrQjqAnPzWvdPJSfVxBv9uhZ9GKo1HsZisaBJbtu15CGWXAN1HyN4E.png)

### Configuration

Fill in the setup form as follows:

-   **Name:** (e.g., “Crono MCP”)
    
-   **Description:** Custom description
    
-   **MCP Server Tool:**
    
    ```javascript
    https://mcp.crono.one/mcp
    
    ```
    
-   **Authentication:** OAuth
    

-   Leave the Advanced OAuth Settings as they are. Do **not** choose "User-Defined OAuth Client" and do **not** paste any Client ID.
    

6.  Check the informative box
    

![](https://staticfiles.gleap.io/gattachments/cv7pyT5ESNuZ6XwxrszfUdXHh4wF2tDJXLOibnVQPL5SD5dzlYjxuZTE81iiMeWZNaIaqa5yIbs.png)

7.  Click **Create**
    
8.  A browser’s page will open, complete the Crono authentication flow and grant the requested permissions.
    

![](https://staticfiles.gleap.io/gattachments/IF8C2ybz1Nlk8n4lrgWRiHppVJKXfX9l4wMYcFv5C1w6Xw2koHMzuQtfcaSPVyiIrcfeU8fWyPG.png)

9.  Return to ChatGPT and verify the connector is enabled
    

After the setup, start a new chat and to start asking ChatGPT to work with Crono data you can reference the Crono connector with the **hotkey “@”**

![](https://staticfiles.gleap.io/gattachments/y1SPJPehmdiv0DjVoSSoYAs1fdvfdehYv0zKdURK37RaOQAMKBAU3yDFar15Dr4dy08Ux9RrBbz.png)

or by pressing the “**+**” and selecting the freshly added Crono MCP in the **“More” list**

![](https://staticfiles.gleap.io/gattachments/Um5EM2QixKqsMMy4g8BzMEOZTr2mn31P36PAJUvUPtmftYOseMQnQr7Td1uen3Isw6zBmCFWpCa.png)

**Example of prompts:**

-   _“Show me accounts in Germany with more than 100 employees among my data.”_
    
-   _“Find prospects with valid emails who opened our last campaign.”_
    
-   _“Create a task in Crono to follow up with John Smith tomorrow.”_
    

* * *

## Connect Crono MCP from ChatGPT Desktop App

Follow these steps:

1.  Open the ChatGPT desktop app
    
2.  Go to **Settings**
    
3.  Navigate to **Connectors** or **Apps & Connectors**
    
4.  Click **Add Connector**
    
5.  Select **Custom MCP Connector**
    
6.  Enter the MCP Server URL
    
7.  Complete authentication in the browser or embedded authorization page
    
8.  Grant permissions
    
9.  Return to the desktop app and verify the Crono connector is active
    

If the desktop app opens the authentication flow in a browser, complete the authorization there and then return to the desktop app.

* * *

## **Claude Case**

Before connecting, make sure you have an active Crono subscription (Ultra Plan required) and a Claude account that can add custom connectors.

**Connect Crono MCP from Claude (web or desktop app)**

1.  Open Claude and go to **Settings → Connectors**.
    
2.  Click **Add custom connector**.
    
3.  Name: e.g. "Crono MCP". URL: `https://mcp.crono.one/mcp`
    
4.  Do **not** open "Advanced settings". No Client ID or secret is needed.
    
5.  Click **Add**, then **Connect**.
    
6.  A browser page opens: log in to Crono and click **Approve** on the permission screen.
    
7.  Back in Claude, the connector shows as **Connected**.
    
8.  Start a **new chat** and enable Crono MCP from the tools menu. You can now ask, for example, "Search my companies in Crono."
    

* * *

## Verify the Connection

You can these prompts to confirm everything is working:

-   “Which Crono tools are available?”
    
-   “Search for companies added last month.”
    
-   “Show my tasks for today.”
    

A successful setup allows your AI tool (ChatGPT or Claude) to retrieve and manipulate Crono data.

* * *

## Permissions and Data Access

Crono MCP exposes only the tools and data allowed by the authenticated Crono user permissions.

Depending on your role, your agent may be able to:

-   Read records
    
-   Create and update data
    
-   Delete or archive records
    
-   Run enrichment processes
    
-   Access reports
    
-   Work with CRM-synced fields
    

If you cannot access certain data in Crono, the AI will not be able to access it either.

* * *

## Recommended Usage Guidelines

To get the best results:

1.  Be explicit about the object (company, contact, task, etc.)
    
2.  Include filters such as name, owner, or date
    
3.  Ask the Agent to preview changes before applying them
    
4.  Confirm targets before destructive actions
    
5.  Use **ObjectId** for updates and deletions whenever possible
    

### Example

❌ Incorrect:  
“Update Acme”

✅ Correct:  
“For my company in Crono named Acme - update the status to Working”

* * *

## Troubleshooting

<table data-id="aa42a4fc-e8d1-47c1-861e-5ddfa4f6286d" style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p data-id="cd17113c-c0cf-47f0-a3c7-6af1eb06ce63"><strong>Issue</strong></p></td><td colspan="1" rowspan="1"><p data-id="f1f04d10-c6cd-4c83-b48e-5272c6f06336"><strong>Possible Cause</strong></p></td><td colspan="1" rowspan="1"><p data-id="8652df3a-8bcb-41df-898b-2241b00a4d23"><strong>Resolution</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="b93a855b-9f30-452e-a6f0-16d95c97a36a">Connector not visible in AI Tool</p></td><td colspan="1" rowspan="1"><p data-id="9e1d4192-04f6-4523-98ab-26cac3de026f">MCP not enabled</p></td><td colspan="1" rowspan="1"><p data-id="0c3a4528-5f77-406d-8f34-1fc1bc99f719">Check workspace settings or contact the workspace admin</p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="6efd6c44-a1cd-4357-b8fc-86901402aeb9">Authentication fails</p></td><td colspan="1" rowspan="1"><p data-id="212ab06c-b734-4d0d-9041-ff2aa004a06c">Expired session or permissions</p></td><td colspan="1" rowspan="1"><p data-id="857a60f7-debd-4d0e-9916-eedc33b87f43">Re-authenticate and restart the connector authorization</p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="f2fc33e7-0718-476d-8b92-8b585e48ff91">AI Tool cannot access expected records</p></td><td colspan="1" rowspan="1"><p data-id="dda656d6-6ced-45e7-8ec9-ac87d70681e2">Limited permissions</p></td><td colspan="1" rowspan="1"><p data-id="d38b6047-708d-491c-9bcf-df8082f8da70">Check user permissions in Crono</p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="c94fb3d2-620f-426f-ba88-536510ad1f59">Tool errors</p></td><td colspan="1" rowspan="1"><p data-id="7b0bd5ad-9f25-4e1e-8b4f-ea06859a359f">Missing required parameters or invalid IDs</p></td><td colspan="1" rowspan="1"><p data-id="14136c27-3c06-4c71-9924-c125c016a217">Check the tool documentation and provide the required fields</p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="363e36b2-e4e5-4d07-9e9c-e079134c0f9d">Wrong records updated</p></td><td colspan="1" rowspan="1"><p data-id="1ab28c18-bc4a-4490-b209-3b9c9a9828cd">Duplicate names</p></td><td colspan="1" rowspan="1"><p data-id="34b80397-c1a3-49c3-8439-37bc2c6409be">Search first, confirm the target record, then update using <strong>ObjectId</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="5818d0d7-d3a0-45cf-b4ae-2fb74732104c">Connection error mentioning the OAuth client or redirect</p></td><td colspan="1" rowspan="1"><p data-id="dde2a874-15fa-4920-ac89-52408aab8729">The connector was created with the old setup (manual Client ID)</p></td><td colspan="1" rowspan="1"><p data-id="b6b2502c-c3ae-4e32-9784-4e3e5174d838">Delete the connector in ChatGPT/Claude and add it again using&nbsp;<span><strong>only</strong></span>&nbsp;the MCP Server URL</p></td></tr></tbody></table>

* * *

## Crono MCP Tools Reference

## 1\. Companies (Accounts)

### SearchAccounts

Search companies that are already in Crono/CRM using multiple filters.

-   Required: `limit`(int), `offset` (int)
    
-   Returns: `Id` (int), `ObjectId` (string)
    
-   Use **ObjectId** for updates
    

**Example:** _“Show me all software companies in Germany with more than 100 employees that have replied to our emails”_

* * *

### InsertAccount

Create a new company.

-   Required: `name` (string)
    

**Example:** _“Add a new company called Acme Inc. in the United States, 200 employees, website_ [_acme.com_](https://acme.com)_, assign to Sarah”_

* * *

### PatchAccount

Update an existing company.

-   Required: `accountId` (string - ObjectId)
    

**Example:** _“Update Acme Inc. - set the owner to John and change the industry to Manufacturing”_

* * *

### DeleteAccount

Delete a single company forever. The company should not have contacts to be deleted.

-   Required: `accountId` (string - ObjectId)
    

**Example:** _“Delete TechWave Solutions”_

* * *

### DeleteMultipleAccounts

Bulk delete companies.

-   Required: `data` (string\[\] — array of account ObjectIds)
    

**Example:** _“Remove all companies from the ‘old prospecting’ list”_

* * *

### PatchMultipleAccountsWithExternal

Batch update multiple companies.

-   Required: `accounts` (array - each item must have `accountId` string ObjectId)
    

**Example:** _“Assign all companies from last week’s import to Alice and mark them as Working”_

* * *

### EnrichCompany

Enrich company with external data (employees, revenue, etc.).

**Example:** _“Enrich TechWave Solutions with the latest employee count and revenue”_

* * *

### ScrapeBulkCompany

Bulk enrich multiple companies simultaneously (queues a background job).

-   Required: Required: `data` (object)
    
    \- `companyScrapeSearches` (array): each item can include `accountId`, `domain`, `linkedinUrl`, `linkedinUrlFoundFromWebsite`, `name`
    
    \- `enrichCompany` (bool): whether to apply enrichment after scraping
    

**Example:** _“Enrich company data for all accounts in the tech industry segment”_

* * *

### GetAccountScore

Retrieve the stored AI score for a company (without recomputing).

-   Required: `accountId` (string - ObjectId)
    

**Example:** _“What is the score for Microsoft?”_

* * *

### RefreshAccountScore

Recompute and save the AI score for a company.

-   **Required:** `accountId` (string - ObjectId)
    

**Example:** _“Refresh the score for the TechCorp account”_

* * *

## 2\. Contacts (Prospects)

### SearchProspects

Search for individual contacts using multiple filters.

-   Required: `limit` (int), `offset` (int)
    
-   Returns both `Id` (int) and `ObjectId` (string). Always use **ObjectId** for CRUD operations. If you need both `AccountId` and `ProspectId`, do not use `minimal: true`.
    

**Example:** _“Show me all CTOs at software companies who have opened our emails”_

* * *

### InsertProspect

Create a new contact.

-   Required inside `data`: `firstName` (string), `lastName` (string)
    
-   If no company is provided, ask the user which company to link to before proceeding. In Salesforce, use `createAsLead: true` if the user says “Lead”.
    

**Example:** _“Create a new contact John Smith, CTO at Microsoft, email_ [_john.smith@microsoft.com_](mailto:john.smith@microsoft.com)_”_

* * *

### PatchProspect

Update an existing contact (partial update).

-   Required**:** `prospectId` (string — ObjectId)
    
    > **Tip:** Check `externalProperties` first — if a status-like CRM field (e.g. “Lead Status”) exists, it overrides the internal status.
    
    **Example:** _“Update John Smith from Microsoft — change title to VP of Engineering and assign to Sarah”_
    

* * *

### DeleteProspect

Delete a single prospect forever.

-   Required**:** `prospectId` (string — ObjectId)
    

**Example:** _“Delete Jane Doe from TechWave Solutions”_

* * *

### DeleteMultipleProspects

Delete multiple prospects at once.

-   Required**:** `data` (array — each item must have `prospectId` string ObjectId)
    

**Example:** _“Remove all prospects from the Q3 campaign”_

* * *

### PatchMultipleProspect

Batch update multiple prospects.

-   Required**:** `prospects` (array — each item must have `prospectId` string ObjectId)
    

**Example:** _“Assign all prospects from TechCorp to Mike and mark them as Qualified”_

* * *

### ScrapeBulkProspect

Bulk find emails, phones, or LinkedIn profiles for multiple prospects (queues a background job).

**Required:** `data` (object)

-   `findEmail` (bool)
    
-   `findPhone` (bool)
    
-   `findLinkedin` (bool)
    
-   `prospectScrapeSearches` (array): each item can include `prospectId`, `firstName`, `lastName`, `companyName`, `domain`, `email`, `linkedinUrl`, `userId`
    

**Example:** _“Find emails for first 50 prospects from the enterprise list”_

* * *

### GetProspectScore

Retrieve the stored AI score for a prospect (without recomputing).

-   Required**:** `prospectId` (string — ObjectId)
    

**Example:** _“What is John Smith’s score?”_

* * *

### RefreshProspectScore

Recompute and save the AI score for a prospect.

-   Required**:** `prospectId` (string — ObjectId)
    

**Example:** _“Refresh the score for John Smith at TechCorp”_

* * *

### FindEmail

Discover and save the email address of a prospect.

**Example:** _“Find the email for John Smith, CTO at TechCorp”_

* * *

### FindPhone

Discover and save the phone number of a prospect.

**Example:** _“Find the phone number for Sarah Johnson at Microsoft”_

* * *

### FindLinkedin

Discover and save the LinkedIn profile of a prospect.

**Example:** _“Find the LinkedIn profile for Mike Chen, VP of Sales at DataTech”_

* * *

## 3\. Sequences (Strategies)

### SearchStrategies

Search for outreach strategies/sequences.

-   Required**:** `limit` (int), `offset` (int)
    
-   **ID note:** Strategy uses **integer Id only** — no ObjectId.
    

**Example:** _“Show me all active email sequences”_

* * *

### GetStrategy

Retrieve the full structure of a strategy (all steps, conditionals, A/B templates, settings).

-   Required**:** `strategyId` (int)
    

**Example:** _“Show me the full structure of the Cold Outreach sequence”_

* * *

### GetStrategyDetails

Get contacts enrolled in a strategy with their current status (minimal data per contact).

-   Required**:** `strategyId` (int), `limit` (int), `offset` (int), `sort` (enum)
    

Sort options: `ContactsAsc` `ContactsDesc` `ProgressAsc` `ProgressDesc` `LastActivityAsc` `LastActivityDesc` `LastInteractionAsc` `LastInteractionDesc` `ScoreAsc` `ScoreDesc`

**Example:** _“Show me all contacts in the Cold Outreach sequence”_

* * *

### GenerateStrategy

Generate a new strategy using AI.

-   Required**:** `name` (string), `numberOfSteps` (int), `stepTypesToUse` (enum\[\]), `productDescription` (string), `targetAudience` (string), `language` (string), `communicationStyle` (enum)
    

> **Step counts:** short = 4, medium = 8, long = 12 **Step types:** `Email` `Call` `Linkedin` `InMail` — **never use** `Generic`

**Example:** _“Generate a short cold outreach sequence for SaaS companies using email and LinkedIn”_

* * *

### CreateSingleUseStrategy

Create a one-off personalized sequence for a specific contact (not reusable, only visible in the contact’s card).

-   Required**:** `prospectId` (string — ObjectId), `accountId` (string — ObjectId), `steps` (array)
    
-   Each step **required:** `type` (enum), `delay` (int — days)
    

**Example:** _“Create a custom 3-step email sequence for John Smith with personalized content”_

* * *

### PatchStrategy

Update strategy metadata (name, sharing, tags).

-   Required inside `data`**:** `id` (int)
    

**Example:** _“Rename strategy XYZ to MAD and make it private”_

* * *

### DeleteStrategy

Delete a strategy permanently.

-   Required**:** `strategyId` (int)
    

**Example:** _“Delete the sequence XYZ”_

* * *

### AddStrategyStep

Add a new step to a strategy.

-   Required inside `data`**:** `strategyId` (int), `order` (int), `type` (enum), `delay` (int), `automatic` (bool)
    
-   Step types: `Email` `Call` `Linkedin` `InMail` `Generic`
    

**Example:** _“Add an email step at the 3rd position of the Cold Outreach sequence”_

* * *

### DeleteStrategyStep

Delete a step from a strategy.

-   Required**:** `strategyId` (int), `stepId` (int)
    
-   Retrieve step ID from `GetStrategy` — users reference steps by position (e.g. “3rd step”).
    

**Example:** _“Delete the 3rd step from sequence XYZ”_

* * *

### PatchStrategyStep

Update a step in a strategy.

-   Required inside `data`**:** `id` (int — step ID), `strategyId` (int)
    

**Example:** _“Set the 3rd step of the sequence to automatic and attach template ‘Sample Template’”_

* * *

### AddStrategyStepTemplate

Add an A/B testing template variant to a strategy step.

-   **Required:** `strategyId` (int)
    
-   **Required inside** `data`**:** `strategyStepId` (int), `templateId` (int), `templateType` (enum)
    
-   Template types: `Email` `Linkedin` `Invitation` `Script` `InMail` `VoiceNote`
    

**Example:** _“Add an A/B testing template to the 3rd step using template ‘Sample Template’”_

* * *

### DeleteStrategyStepTemplate

Delete an A/B testing template from a step.

-   Required**:** `strategyId` (int), `strategyStepId` (int), `strategyStepTemplateId` (int)
    

**Example:** _“Delete the second A/B testing template from the 2nd step”_

* * *

### PatchStrategyStepTemplate

Enable or disable an A/B testing template variant.

-   Required**:** `strategyId` (int), `strategyStepId` (int), `strategyStepTemplateId` (int), `enabled` (bool)
    

**Example:** _“Disable the second A/B testing template of the 3rd step”_

* * *

### PatchStrategyStepConditional

Update the conditional configuration of a strategy step.

-   Required**:** `strategyId` (int), `data.strategyStepId` (int)
    

**Example:** _“Set the conditional of the 3rd step to automatic”_

* * *

### AddProspectToStrategy

Enroll a single prospect in a strategy sequence. The prospect must be owned by the current user.

-   Required**:** `prospectId` (string — ObjectId), `strategyId` (int)
    

**Example:** _“Add John Smith from Microsoft to the Cold Outreach for SaaS sequence”_

* * *

### AddMultipleProspectsToStrategy

Enroll multiple prospects in a strategy at once.

-   Required**:** `strategyId` (int)
    

**Example:** _“Add all prospects from Microsoft to the Enterprise Follow-up sequence”_

* * *

### StopProspectSequence

Stop/pause an active sequence for a prospect.

-   Required**:** `prospectId` (string — ObjectId), `sequenceInstanceId` (int)
    

**Example:** _“Stop the email sequence for John Smith at TechCorp”_

* * *

### RestartSequenceInstance

Restart a prospect’s sequence from the beginning.

-   Required**:** `prospectId` (string — ObjectId), `strategyId` (int)
    

**Example:** _“Restart the email sequence for Jane Doe at DataCorp”_

* * *

### ResumeSequenceInstances

Resume paused sequences for multiple prospects.

**Example:** _“Resume email sequences for all paused prospects from the Q3 campaign”_

* * *

## 4\. Templates

### SearchTemplates

Search email and message templates.

-   Required**:** `limit` (int), `offset` (int), `type` (enum)
    
-   **ID note:** Template uses **integer Id only** — no ObjectId.
    
-   Types: `Email` `Linkedin` `Invitation` `Script` `InMail` `VoiceNote`
    

**Example:** _“Show me all cold email templates”_

* * *

### CreateSingleUseTemplate

Create a one-off hidden template (used for task drafts — does not appear in search).

-   Required inside `data`**:** `title` (string), `content` (string), `language` (string), `type` (enum), `isSingleUse: true` (mandatory)
    
-   The returned `Id` should be used as `templateId` when creating a task.
    

**Example:** _“Create a draft email template with subject ‘Quick question about {{Company}}’”_

* * *

### PatchTemplates

Update an existing template (partial update).

-   Required**:** `id` (int)
    

* * *

## 5\. Lists

## SearchLists

Search for existing lists.

-   **Required:** `type` (enum) — `Account` `Prospect` `Lead` `Template` `Strategy` `User`
    
-   **ID note:** List uses **integer Id only** — no ObjectId.
    

**Example:** _"Show me all prospect lists"_

* * *

### CreateList

Create a new list, optionally pre-populated.

-   Required**:** `name` (string), `type` (enum)
    
-   In Salesforce, check whether the user means a Lead list (`Lead`) or a Contact list (`Prospect`).
    

**Example:** _"Create a new prospect list called Q1 2024 Pipeline and add John Smith to it"_

* * *

### PatchList

Update a list's properties.

-   Required**:** `id` (int)
    

**Example:** _"Rename the Q4 Pipeline list to Q1 2024 Pipeline"_

* * *

### DeleteList

Delete a list.

-   Required**:** `listId` (int)
    

**Example:** _"Delete the Old Prospects list"_

* * *

### AddAccountsToList

Add companies to a single list.

-   Required**:** `listId` (int), `objectIds` (string\[\] — account ObjectIds)
    

**Example:** _"Add Microsoft and Google to my Enterprise Clients list"_

* * *

### AddAccountsToMultipleLists

Add companies to multiple lists simultaneously.

-   Required**:** `listIds` (int\[\]), `objectIds` (string\[\] — account ObjectIds)
    

**Example:** _"Add Apple Inc to both Enterprise Clients and Tech Companies lists"_

* * *

### AddProspectsToList

Add prospects to a single list.

-   Required**:** `listId` (int), `objectIds` (string\[\] — prospect ObjectIds)
    

**Example:** _"Add John Smith to my Hot Prospects list"_

* * *

### AddProspectsToMultipleLists

Add prospects to multiple lists simultaneously.

-   Required**:** `listIds` (int\[\]), `objectIds` (string\[\] — prospect ObjectIds)
    

**Example:** _"Add Sarah Johnson to both Hot Prospects and Q4 Pipeline lists"_

* * *

### AddStrategiesToList

Add strategies to a single list.

-   Required**:** `listId` (int), `ids` (int\[\] — strategy IDs)
    

**Example:** _"Add ABM Starter to my Enterprise Clients list"_

* * *

### AddStrategiesToMultipleLists

Add strategies to multiple lists simultaneously.

-   Required**:** `listIds` (int\[\]), `ids` (int\[\] — strategy IDs)
    

**Example:** _"Add Q4 Expansion Play to both Strategic Accounts and Q4 Pipeline lists"_

* * *

### AddTemplatesToList

Add templates to a single list.

-   Required**:** `listId` (int), `ids` (int\[\] — template IDs)
    

**Example:** _"Add Outbound Sequence A to my Q4 Pipeline list"_

* * *

### AddTemplatesToMultipleLists

Add templates to multiple lists simultaneously.

-   Required**:** `listIds` (int\[\]), `ids` (int\[\] — template IDs)
    

**Example:** _"Add Onboarding Sequence to both Enterprise Clients and Q1 Pipeline lists"_

* * *

### RemoveAccountsFromList

Remove companies from a specific list.

-   Required**:** `listId` (int), `objectIds` (string\[\] — account ObjectIds)
    

**Example:** _"Remove Microsoft from my Enterprise Clients list"_

* * *

### RemoveAccountsFromAllList

Remove companies from all lists they belong to.

-   Required**:** `objectIds` (string\[\] — account ObjectIds)
    

**Example:** _"Remove Microsoft from all lists"_

* * *

### RemoveProspectsFromList

Remove prospects from a specific list.

-   Required**:** `listId` (int), `objectIds` (string\[\] — prospect ObjectIds)
    

**Example:** _"Remove John Smith from my Hot Prospects list"_

* * *

### RemoveProspectsFromAllList

Remove prospects from all lists they belong to.

-   Required**:** `objectIds` (string\[\] — prospect ObjectIds)
    

**Example:** _"Remove John Smith from all lists"_

* * *

### RemoveStrategiesFromList

Remove strategies from a specific list.

-   Required**:** `listId` (int), `ids` (int\[\] — strategy IDs)
    

**Example:** _"Remove ABM Starter from my Enterprise Clients list"_

* * *

### RemoveStrategiesFromAllLists

Remove strategies from all lists they belong to.

-   Required**:** `ids` (int\[\] — strategy IDs)
    

**Example:** _"Remove ABM Starter strategy from all lists"_

* * *

### RemoveTemplatesFromList

Remove templates from a specific list.

-   Required**:** `listId` (int), `ids` (int\[\] — template IDs)
    

**Example:** _"Remove Outbound Sequence A from my Q4 Pipeline list"_

* * *

### RemoveTemplatesFromAllLists

Remove templates from all lists they belong to.

-   Required**:** `ids` (int\[\] — template IDs)
    

**Example:** _"Remove Onboarding Sequence template from all lists"_

* * *

## **6\. Tasks**

### SearchTasks

Search tasks (follow-up activities, to-dos, scheduled actions).

-   Required**:** `limit` (int), `offset` (int)
    
-   **ID note:** Task uses **integer Id only**. `ProspectId`, `AccountId`, `OpportunityId` filters expect **ObjectId (string)**.
    

**Example:** _"Show me all pending email tasks for Microsoft prospects"_

* * *

### CreateTask

Create a new follow-up task for a prospect.

-   Required**:** `accountId` (string — ObjectId), `type` (enum), `activityDate` (datetime), `automatic`  (bool)
    
-   `prospectId` is **required** for all types except `Generic`. `subject` is **mandatory** — generate from context if not provided by the user.
    
-   For Email/InMail tasks with pre-written content: first create a single-use template via `CreateSingleUseTemplate`, then pass the returned ID as `templateId`.
    

**Example:** _"Create a follow-up email task for John Smith at Microsoft tomorrow at 10am"_

* * *

### PatchTask

Update an existing task (partial update).

-   Required**:** `id` (int)
    

**Example:** _"Mark the email task for John Smith as completed"_

* * *

### PatchTaskMultiple

Batch update multiple tasks.

-   Required**:** `ids` (int\[\])
    

**Example:** _"Reschedule all calls from today to next Monday"_

* * *

### GetUserTasksAnalytics

Retrieve analytics and statistics about the current user's tasks. Returns counts of pending, completed, and overdue tasks by type and time period.

**Example:** _"How many pending tasks do I have?"_

* * *

## **7\. Deals (Opportunities)**

### SearchOpportunitiesListView

Search opportunities in paginated list view with rich filtering.

**Example:** _"Show me all open deals in Negotiation stage closing this quarter"_

* * *

### SearchOpportunitiesByAccountId

Search opportunities linked to a specific company.

-   Required**:** `accountId` (string — ObjectId)
    

**Example:** _"Find all open opportunities for Acme Corp in negotiation stage"_

* * *

### InsertOpportunity

Create a new deal/opportunity.

-   Required**:** `accountId` (string — ObjectId)
    

**Example:** _"Add a new opportunity for TechWave worth $50,000 in Discovery stage, closing next month"_

* * *

### PatchOpportunity

Update an existing opportunity (partial update).

-   Required**:** `accountId` (string — ObjectId), `opportunityId` (string — ObjectId)
    

**Example:** _"Update the Acme opportunity to Negotiation stage and move the close date to next quarter"_

* * *

### DeleteOpportunity

Delete/archive an opportunity.

-   Required**:** `accountId` (string — ObjectId), `opportunityId` (string — ObjectId)
    

**Example:** _"Delete the stale opportunity for Widget Corp"_

* * *

## **8\. Pipelines**

### GetPipelines

Retrieve all sales pipelines with their stages and probabilities. Returns all active pipelines with names, IDs, and stage details (name, probability %).

**Example:** _"Show me all our sales pipelines"_

* * *

### AddStageToPipeline

Add a new stage to an existing pipeline.

**Example:** _"Add a Technical Review stage with 70% probability to the Enterprise Sales pipeline"_

* * *

### PatchPipeline

Rename a pipeline.

-   Required inside `data`**:** `pipelineId` (int), `publicName` (string)
    

**Example:** _"Rename Sales Pipeline 2024 to Enterprise Sales Pipeline"_

* * *

### DeletePipeline

Delete/archive a pipeline.

-   **Warning:** May affect all opportunities linked to this pipeline. First retrieve pipelines to confirm the correct ID.
    

**Example:** _"Delete the old 2023 Sales Pipeline"_

* * *

## **9\. Notes**

### InsertNote

Create a note attached to a prospect, company, or deal.

-   Required**:** `description` (string), `accountId` (string — ObjectId)
    

**Example:** _"Add a note to John Smith: discussed pricing on the call today"_

* * *

## **10\. AI & Enrichment**

### GenerateAiVariables

Generate AI-powered personalized variables for prospects or accounts in bulk (queues a background job).

-   Required**:** `externalPropertyIds` (int\[\]), `objectIds` (string\[\] — ObjectIds), `tableType` (enum)
    
-   Table types: `Account` `Prospect` `Lead` `Opportunity`
    

**Example:** _"Generate icebreaker variables for all prospects in the Q4 enterprise sequence"_

* * *

### GetSummarizeContext

Retrieve all context needed to generate a comprehensive AI summary for a contact, company, or deal — in a single call.

Returns:

-   **Contact:** full contact info + deals + recent tasks
    
-   **Company:** full company info + contacts + all linked deals
    
-   **Deal:** full deal info + linked company + pipeline/stage + recent tasks
    

**Example:** _"Generate a comprehensive summary for Acme Corp"_

* * *

## **11\. Users**

### SearchUsers

Search all users in the current Crono workspace. Returns a list of users with their integer `Id` and profile info.

Use the integer `Id` as `userId` / `ownerId` when assigning ownership on other entities.

**Example:** _"Who are the users in my workspace?"_

* * *

## **12\. Find New Searches**

### SearchFindNewSearches

Search for saved "Find New" search configurations.

-   Required**:** `type` (enum) — `CompanyLinkedin` `ContactLinkedin` `CompanySalesNavigator` `ContactSalesNavigator`
    
-   **ID note:** FindNewSearch uses **integer Id only** — no ObjectId.
    

**Example:** _"Show me all Find New searches for LinkedIn contacts"_

* * *

### GetFindNewSearch

Get details of a specific Find New search configuration.

-   Required**:** `findNewSearchId` (int)
    

**Example:** _"Show me the details of the German CTO search"_

* * *

### DeleteFindNewSearch

Delete a Find New search configuration.

-   Required**:** `findNewSearchId` (int)
    

**Example:** _"Delete the Find New search for German CTOs"_

* * *

## **13\. Custom Fields (External Properties)**

### GetExternalProperties

Retrieve custom CRM fields and AI variables configured in the system. Returns property metadata: field name, type (text, number, picklist…), options, editability, CRM sync status.

**Example:** _"Show me all custom properties available for contacts"_

* * *

## Final Notes

-   Always prefer **ObjectId** for updates
    
-   Use search → confirm → update workflow
    
-   Be explicit in instructions to avoid ambiguity
    
-   Use AI generation features for scaling personalization
