To let an assistant use these tools, grant Customer CRM on the consent screen, or just
CRM pipeline & vocabulary under its Fine-tune. The scope is crm_pipeline.
Read tools work with Read only or Read & write access; write tools only with
Read & write.
Your assistant doesn't see these tools straight away. It finds them with search_tools or
describe_tools, and runs one with use_tool, passing its name and
arguments. Most assistants do this for you: just ask for what you want.
What your assistant is told about this group
The pipeline and how the record is organised: each lead's stage and owner, and the fields you record. Each organisation names its own stages, so call list_crm_stages first and never guess; what decides an outcome is a stage's `kind` (open, won or lost), not its name. Moving a lead to won or lost changes the organisation's funnel numbers, assign_lead_owner notifies a real person, and merge_crm_fields can't be undone automatically: confirm all three with the user first. This group also sets up the CRM: workflows (save, turn on, try out with test_crm_workflow, run by hand, retry failures), campaigns, stages, fields and saved segments, plus the performance report. A campaign's website forms live on its Lead capture tab in the dashboard, and a campaign can have several. A lead form (the *_crm_lead_form tools) takes an enquiry: a contact form, a quote request, a callback or a newsletter sign-up. A quote form (the *_crm_quote_form tools) gives a price for one of the org's live products, or whole of market, and can take them through to buying. Systems that aren't a web page send leads through the API instead. To set one up: list_crm_campaigns finds the campaign and its forms; save_crm_lead_form (with a template, then a design) or save_crm_quote_form (with a product from list_products) makes the form; allowed_origins must list the firm's websites, or it works nowhere; the answer has the snippet to paste, and developers install it with /developers/embeds/leadform or /developers/embeds/quoteform. get_crm_lead_form_results and get_crm_quote_form_results say how each is doing. A new key or removing a form stops it on every website at once: confirm with the user first. Running a workflow carries out its actions for real and may message customers, so try it out with test_crm_workflow and confirm first. delete_crm_workflow and delete_saved_view are PERMANENT, and archiving a stage or pausing a campaign changes what happens to live leads: confirm with the user. Most setup changes need an owner or manager.
The descriptions below are the ones your assistant reads, so they're written for it. When a connection covers more than one
organisation, the assistant passes org (the organisation's slug, from list_orgs) to say which one.
list_crm_stages
Read List CRM pipeline stages
The org's pipeline stages, in order. Stage keys are authored per org, so read these before calling set_lead_stage. `kind` (open/won/lost) is what decides outcomes: never infer that from a stage's name.
Arguments
| Field | Type | Description |
|---|---|---|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
set_lead_stage
Write Move a lead's stage
Move a lead through the pipeline. Call list_crm_stages first: stage keys and ids are authored per org. Moving to a won or lost stage closes the lead, which changes the org's funnel numbers, so confirm with the operator before doing it. A stage can record an outcome on entry (Won records Sold): recorded_outcome is that outcome, and unfilled lists the values it has none for yet (premium, commission). Ask the operator for them and add them with complete_outcome_event.
Arguments
| Field | Type | Description |
|---|---|---|
| contact_id required | string | |
| stage_id required | string | A stage id from list_crm_stages. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
record_lead_outcome
Write Record how a lead ended
Mark a lead won, lost, or disqualified (duplicate, invalid, not_interested, ineligible), with why it did not go ahead. Won and lost move the lead to its pipeline's won or lost stage and change the org's funnel numbers, so confirm with the operator first.
Arguments
| Field | Type | Description |
|---|---|---|
| contact_id required | string | |
| outcome required | string |
One of: "won", "lost", "disqualified", "duplicate", "invalid", "not_interested", "ineligible"
|
| reason | string |
Why it did not go ahead. Not used for won.
One of: "price", "went_elsewhere", "no_response", "not_ready", "not_eligible", "changed_mind", "duplicate", "bad_details", "other"
|
| note | string | Anything the reason alone does not say. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
assign_lead_owner
Write Assign a lead's owner
Put a team member on a lead, or pass null to unassign. The new owner is notified, so this reaches a real person: confirm who before calling it. Only members of the organisation can own a lead.
Arguments
| Field | Type | Description |
|---|---|---|
| contact_id required | string | |
| owner_user_id | string or null | Null unassigns. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
promote_crm_field
Write Accept a proposed CRM field
Accept a field an agent invented into the org's real vocabulary. Until this happens the field holds data but is hidden from extraction, so it cannot spread. Check the review queue first: a proposal that duplicates an existing field should be merged, not accepted.
Arguments
| Field | Type | Description |
|---|---|---|
| field_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
deprecate_crm_field
Write Retire a CRM field
Remove a field from the catalogue. Its existing facts stay readable and its key stays reserved; nothing new will be recorded against it. Nothing is deleted.
Arguments
| Field | Type | Description |
|---|---|---|
| field_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
merge_crm_fields
Write Merge two CRM fields
Fold one field into another: every fact moves to the target and the source key becomes one of its alternative spellings. This is the fix for duplicate vocabulary (occupation and job_title holding the same thing). Both fields must hold the same value type. It is NOT automatically reversible: always confirm with the operator first.
Arguments
| Field | Type | Description |
|---|---|---|
| source_id required | string | The field that disappears. |
| target_id required | string | The field everything moves to. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_performance
Read CRM performance report
How leads that arrived in the window have done: outcomes and win rate, time in each stage, results by owner, campaign, channel and agent, speed to lead, weekly trend, forecast, weighted pipeline value (pence) and operator calls.
Arguments
| Field | Type | Description |
|---|---|---|
| window_days | integer | 1 to 365. Default 90. |
| period | string |
Instead of window_days, the Insights window: today, week, month (so far), last7, last30, last90, last_month, or custom with from/to (YYYY-MM-DD).
One of: "today", "week", "month", "last7", "last30", "last90", "last_month", "custom"
|
| from | string | |
| to | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
test_crm_workflow
Read Dry-run a workflow against a lead
Check a workflow against one lead without running it: each condition with the lead's actual value and whether it passes, whether it would run, and the actions it would take. Changes nothing.
Arguments
| Field | Type | Description |
|---|---|---|
| workflow_id required | string | |
| contact_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
run_saved_view
Read Run a CRM segment
The leads a saved segment matches right now, a page at a time. `has_more` means ask again with the next page.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | From list_saved_views. |
| page | integer | 1 is the first page. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
run_crm_workflow
Write Run a workflow on a lead now
Run an enabled workflow on one lead straight away, whatever its trigger. Its actions happen for real (they may message the customer or change the lead), so confirm with the user first; test_crm_workflow is the dry run. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| workflow_id required | string | From list_crm_workflows. |
| contact_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
retry_failed_workflow_runs
Write Retry a workflow's failed runs
Queue a retry of every run of this workflow that failed in the last 7 days and has not since succeeded. Retried actions happen for real. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| workflow_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
save_crm_workflow
Write Create or edit a CRM workflow
Create a workflow, or replace an existing one's settings when workflow_id is given: trigger, conditions (all must pass) and up to 10 ordered actions. The submitted actions REPLACE the current list, so send every action you want to keep (with its id). Read list_crm_workflows first. New workflows start enabled. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| name required | string | |
| workflow_id | string | Omit to create a new workflow. |
| trigger | string |
Omit for a workflow that only runs by hand or from another workflow.
One of: "lead.created", "lead.facts_recorded", "lead.stage_changed", "lead.owner_assigned", "lead.status_changed", "lead.vulnerability_flagged", "lead.next_action_due", "lead.manual_run", "lead.grade_changed", "lead.tps_screened", "lead.task_completed", "lead.first_contact_overdue", "lead.outcome_reason_set", "lead.snooze_ended", "lead.tagged", "lead.untagged", "activity.contact.created", "activity.contact.identified", "activity.contact.opted_out", "activity.conversation.started", "activity.conversation.ended", "activity.conversation.escalated", "activity.conversation.resolved", "activity.message.inbound", "activity.message.outbound", "activity.email.sent", "activity.lifecycle.email_sent", "activity.email.bounced", "activity.email.complained", "activity.application.started", "activity.application.abandoned", "activity.application.handed_off", "activity.market_quote.completed", "activity.market_quote.failed", "activity.market_quote.selected", "activity.quote.issued", "activity.quote.accepted", "activity.quote.expired", "activity.policy.bound", "activity.policy.cancelled", "activity.policy.endorsed", "activity.policy.renewal_approaching", "activity.premium.collected", "activity.premium.failed", "activity.claim.registered", "activity.claim.settled", "activity.booking.created", "activity.booking.cancelled", "activity.follow_up.scheduled", "activity.follow_up.fired", "activity.callback.requested", "activity.outreach.sent", "activity.outreach.link_opened", "activity.outreach.bulk_send", "activity.consent.granted", "activity.consent.refused", "activity.consent.withdrawn", "activity.consent.reasserted_after_opt_out", "activity.loyalty.points_awarded", "activity.call.logged", "activity.call.unanswered", "activity.meeting.logged", "activity.note.added", "activity.lead.referred_friend", "activity.lead.referred", "activity.ingest.received", "activity.ingest.ambiguous", "activity.agent.lead_captured", "contact.details_changed"
|
| campaign_id | string | Limit to one campaign. Omit for org-wide. |
| conditions | array of object | |
| conditions[].field | string | |
| conditions[].rule | string |
One of: "required", "absent", "matches", "in", "is_true", "min_length", "equals", "contains", "real_phone", "at_least", "at_most"
|
| conditions[].value | any | |
| actions | array of object | Action config, by type: assign_owner user_id, reassign; set_stage stage_id; notify_team message, audience (owner/everyone); enrol_outreach stream_id; run_workflow workflow_id; add_note body; disqualify status, reason; snooze days; create_task task_type, summary, due_in_days, task_user_id (a member's id from list_org_members; leave it out for the lead's owner); record_outcome outcome_status, outcome_reason; complete_tasks complete_task_type; archive (none); add_tag tag; remove_tag tag (a tag's name or key, e.g. newdistribution subscriber); call_endpoint endpoint_id (its body template must only use names from get_lead_payload_reference); webhook connection_id; sheet_append connection_id, update_in_place. |
| actions[].id | string | An existing action's id, to keep it. |
| actions[].action_type | string |
One of: "assign_owner", "set_stage", "notify_team", "call_endpoint", "enrol_outreach", "run_workflow", "add_note", "disqualify", "snooze", "webhook", "sheet_append", "create_task", "record_outcome", "complete_tasks", "archive", "add_tag", "remove_tag"
|
| actions[].enabled | boolean | |
| on_success_workflow_id | string | |
| on_success_delay_minutes | integer | |
| on_failure_workflow_id | string | |
| on_failure_delay_minutes | integer | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
set_crm_workflow_enabled
Write Turn a workflow on or off
Enable or pause a CRM workflow. An enabled workflow acts on real leads as its trigger fires. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| workflow_id required | string | |
| enabled required | boolean | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
delete_crm_workflow
Write Delete a CRM workflow
PERMANENT: delete a workflow and its run history. set_crm_workflow_enabled with enabled false is the reversible option. Owner or manager only. ALWAYS confirm with the user first.
Arguments
| Field | Type | Description |
|---|---|---|
| workflow_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
save_crm_campaign
Write Create or edit a CRM campaign
Create a lead campaign, or edit one when campaign_id is given. Rules are checked at the door: a lead that fails them is held in the review queue. The key is fixed at creation (partners send it). Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| name required | string | |
| campaign_id | string | Omit to create. |
| key | string | Only on create. Derived from the name when omitted. |
| description | string | |
| rules | array of object | Replaces the current rules. |
| rules[].field | string | |
| rules[].rule | string |
One of: "required", "absent", "matches", "in", "is_true", "min_length", "equals", "contains", "at_least", "at_most"
|
| rules[].value | any | |
| outcome_goal | string | Goal key its P&L counts conversions by; blank for the org's default. |
| cost_per_lead | number | Pounds per new lead, recorded as each arrives; 0 removes it. |
| utm_campaigns | array of string | utm_campaign values that mean this campaign (replaces the list). |
| ad_campaigns | array of object | Google/Meta campaigns whose spend is its cost (replaces the list). |
| ad_campaigns[].platform | string |
One of: "google_ads", "meta_ads"
|
| ad_campaigns[].campaign_id | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
set_crm_campaign_status
Write Activate, pause or archive a campaign
Change whether a campaign accepts leads. A paused or archived campaign turns new leads away at the door, so confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| campaign_id required | string | |
| status required | string |
One of: "active", "paused", "archived"
|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_campaign_overview
Read Show how a campaign is doing
A campaign's last 7, 30 or 90 days: new leads (and the period before), day by day, how they came in (website lead form, API app, import, by hand) and where from (Google, Meta, email and so on), its open leads by pipeline stage and its won/lost counts, what needs someone (held for review, nobody owns them, a conversation left them waiting on us), and the latest arrivals. For its money, use get_campaign_performance.
Arguments
| Field | Type | Description |
|---|---|---|
| campaign_id required | string | |
| days | integer |
One of: 7, 30, 90
|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_lead_form
Read Show a website lead form
A website lead form (the leadform embed: an enquiry form on the firm's own website), by its id (list_crm_campaigns lists each campaign's; on the dashboard it's the last part of the form's page address, /crm/campaigns/<campaign id>/lead_forms/<id>): its name, whether it's on, the websites allowed to use it, its emails and bot check, its design, its publishable key, and the snippets to paste: one where the embed draws the form, one for the site's own form. Also what a design may use (choices): the fields it can ask for, the consent boxes it can show (consent.boxes keys), and the live agents whose chat can open once it's sent (after.chat_agent_id), with whether each agent's Web chat is on (needed for the chat to open on the firm's own website). Developers install it with /developers/embeds/leadform.
Arguments
| Field | Type | Description |
|---|---|---|
| lead_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_lead_form_results
Read Show how a website lead form is doing
A website lead form's results over the last 7, 30 or 90 days: how many people saw it, started it, reached each later page and sent it, the share who sent it of those who saw it, the share who gave up once started, and the leads it made, with a row a day. Counts only, never who.
Arguments
| Field | Type | Description |
|---|---|---|
| lead_form_id required | string | |
| days | integer |
One of: 7, 30, 90
|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
save_crm_lead_form
Write Make or change a website lead form
Make a website lead form on a campaign (campaign_id, a name, and a template: the kind of form to start from), or change one (lead_form_id): its name, whether it's on, which websites may use it, its design, or which inboxes each enquiry is emailed to. A campaign can have several (a contact form, a quote request). For an enquiry; to give a price on the website, use save_crm_quote_form. A new form gets its own publishable key; the answer has the snippet to paste on the site, and it works only once allowed_origins lists a website. Each enquiry becomes a lead on the campaign and runs its workflows, with the form's tags (a workflow can listen for lead.tagged). A subscription form (a mailing list: an email field and a Subscribe button) records pressing Subscribe as the opt-in to email marketing. Read get_crm_lead_form's choices before writing a design. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| campaign_id | string | To make a new form on this campaign. |
| lead_form_id | string | To change this form. |
| name | string | Its name on the campaign, like "Quote request" (unique there). |
| template | string |
A new form's kind, for its starting design: contact (name, email, phone and their message); quote (who they are and what they'd like a quote for); callback (a phone number and the best time to call); newsletter (a first name and an email, and the marketing boxes); blank (names, email, phone and a message, to make your own).
One of: "contact", "quote", "callback", "newsletter", "blank"
|
| enabled | boolean | Omit to leave as it is (a new form starts on). |
| allowed_origins | array of string | Websites allowed to use the form, like https://www.example.com (replaces the list). A page address is cut to its website. |
| notify_emails | array of string | Inboxes each enquiry is emailed to, reply-to the sender (replaces the list, at most 5; [] for none). |
| tags | array of string | Tags every submission gets, by name, like "newdistribution subscriber" (replaces the list, at most 10; [] for none). New names become new tags. |
| subscription | boolean | A subscription form: pressing its button is the person's opt-in to email marketing, worded by the org's leadform.subscribe consent rule, and it shows no other consent boxes. Omit to leave it. |
| bot_challenge | boolean | The built-in bot check: a puzzle the form solves unseen, no setup. Omit to leave it. |
| design | object | The form it draws (replaces it): {pages: [{title, intro, fields: [field]}], title, intro, submit_label, next_label, back_label, success_title, success_message (may use {first_name}), privacy_url, consent: {boxes: [option keys to show]} (omit for all; the notice always shows), after: {chat_agent_id} (a live agent whose chat opens once it's sent; omit for a thank-you), theme: {accent: '#rrggbb', radius: none|small|medium|large, layout: stacked|inline, font: inherit|system}}. A field: {key, type, label, placeholder, hint, required, width: full|half, options: [choices], value (hidden), text (content), validation: {min_length, max_length, min, max, pattern (whole answer), message}, show_if: {field (an earlier field's key), op: is|is_not|filled|empty, values: [answers, for is/is_not]} (shown only then)}. Types: text, textarea, email, tel, number, date, select, radio, checkbox, checkboxes, hidden, content. Keys: first_name, last_name, name, email, phone, message, the org's CRM field keys, or a new one of the form's own (lowercase_with_underscores, with a type). An email or phone field is needed. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
rotate_crm_lead_form_key
Write Give a lead form a new key
Replace the publishable key of a website lead form. The old key stops working at once, so every site using the form must update its snippet: confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| lead_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
delete_crm_lead_form
Write Remove a lead form
Remove a website lead form. Its key stops working at once, so a website still showing it can't send leads any more; the leads it sent stay. Confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| lead_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_quote_form
Read Show a quote form for the website
A quote form for the firm's website (the quoteform embed), by its id (list_crm_campaigns lists each campaign's; on the dashboard it's the last part of the form's page address, /crm/campaigns/<campaign id>/quote_forms/<id>): its product and journey, whether it's whole of market, whether it's on, its websites, its publishable key and the snippet to paste. Developers install it with /developers/embeds/quoteform.
Arguments
| Field | Type | Description |
|---|---|---|
| quote_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
get_crm_quote_form_results
Read Show how a website quote form is doing
A website quote form's results over the last 7, 30 or 90 days: how many people saw it, started a quote, were quoted and bought, the share who started of those who saw it, the share quoted of those who started, with a row a day. Counts only, never who.
Arguments
| Field | Type | Description |
|---|---|---|
| quote_form_id required | string | |
| days | integer |
One of: 7, 30, 90
|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
save_crm_quote_form
Write Make or change a quote form for the website
Make a quote form a firm puts on its own website, on a campaign (campaign_id, a name, and the product_id it quotes: one of the org's live products from list_products, its own or whole of market), or change one (quote_form_id). For a price people can get, and often buy, on the website; for an enquiry, use save_crm_lead_form. Quotes started from it join the campaign as leads and run its "A lead arrives" workflows. A new one gets its own publishable key; the answer has the snippet to paste, and only the websites listed may use it (none listed: it works nowhere). Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| campaign_id | string | To make a new quote form on this campaign. |
| quote_form_id | string | To change this quote form. |
| name | string | Its name on the campaign (unique there). |
| product_id | string | |
| journey_id | string | The product's journey; omit for its first live one. |
| enabled | boolean | |
| allowed_origins | array of string | Websites allowed to use it, like https://www.example.com (replaces the list). |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
rotate_crm_quote_form_key
Write Give a quote form a new key
Replace a quote form's publishable key. The old key stops working at once, so every site using it must update its snippet: confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| quote_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
delete_crm_quote_form
Write Remove a quote form
Remove a quote form for the website. Its key and every token it handed out stop working at once; the quotes it started stay. Confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| quote_form_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
save_crm_stage
Write Create or edit a pipeline stage
Add a stage to the end of the default pipeline, or edit one when stage_id is given. `kind` (open/won/lost) decides outcomes: leads moved into a won or lost stage close. Only the fields you send change. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| name required | string | |
| stage_id | string | Omit to create. Ids come from list_crm_stages. |
| kind | string |
One of: "open", "won", "lost"
|
| color | string |
One of: "neutral", "primary", "secondary", "accent", "info", "success", "light_green", "warning", "error", "ghost"
|
| probability | integer | Chance of winning from here, 0 to 100. |
| stale_after_days | integer | Flag a lead untouched this long. 0 clears it. |
| advance_on | array of string | Timeline activity kinds that move a lead into this stage. |
| outcome_type | string | Outcome type key (get_outcome_model) a lead entering this stage records; empty string to record nothing. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
reorder_crm_stage
Write Move a pipeline stage
Move a stage to a new place in the pipeline (0 is first). Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| stage_id required | string | |
| position required | integer | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
archive_crm_stage
Write Archive a pipeline stage
Retire a stage from the pipeline. Leads standing in it must move to another open stage (destination_stage_id); the pipeline always keeps one open stage. Archived stages cannot be edited or brought back here, so confirm with the user first. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| stage_id required | string | |
| destination_stage_id | string | An open stage for its leads. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
create_crm_field
Write Add a CRM field
Add a field to the org's vocabulary, active straight away. Read list_crm_fields first: a near-duplicate splits the data, and a name that an existing field already answers to is refused. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| key | string | snake_case key. Derived from the label when omitted. |
| label | string | |
| description | string | What the field means; extraction reads it. |
| value_type | string |
One of: "string", "number", "boolean", "date", "datetime", "enum", "json"
|
| cardinality | string |
One of: "single", "multi"
|
| sensitivity | string |
One of: "normal", "pii", "special_category"
|
| capture_policy | string |
One of: "either", "declared_only", "observed_only"
|
| enum_values | array of string | The choices. Giving any makes the field an enum. |
| aliases | array of string | Other names that should resolve to this field. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
update_crm_field
Write Edit a CRM field
Change a field's label, description, type, choices, aliases or sensitivity. The key never changes. The type is locked once facts are stored under a different kind of value. Only the fields you send change. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| field_id required | string | From list_crm_fields. |
| label required | string | |
| description | string | |
| value_type | string |
One of: "string", "number", "boolean", "date", "datetime", "enum", "json"
|
| cardinality | string |
One of: "single", "multi"
|
| sensitivity | string |
One of: "normal", "pii", "special_category"
|
| capture_policy | string |
One of: "either", "declared_only", "observed_only"
|
| enum_values | array of string | The choices. Giving any makes the field an enum. |
| aliases | array of string | Other names that should resolve to this field. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
move_crm_field
Write Reorder a CRM field
Move an active field to a new place in the catalogue (0 is first). The order is how fields show on a lead. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| field_id required | string | |
| position required | integer | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
promote_all_crm_fields
Write Accept every proposed CRM field
Accept every field agents have proposed into the real vocabulary at once, or none if any fails. Check get_crm_review_queue first: a proposal that duplicates an existing field should be merged instead. Confirm with the user. Owner or manager only.
Arguments
| Field | Type | Description |
|---|---|---|
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
create_saved_view
Write Save a CRM segment
Save a lead filter as a named segment everyone (or only you, shared false) can reopen. Pass the `filters` a search_leads answer returned, or build them from the list_leads vocabulary; unknown keys are ignored.
Arguments
| Field | Type | Description |
|---|---|---|
| name required | string | |
| filters required | object | Keys: stages, statuses, owner_id, unowned, score_min, score_max, next_action, untouched_for_days, created_within_days, created_from, created_to, touched_from, touched_to, activity, facts, channels, campaign_ids, uncampaigned, tags, origin_channels, sources, buying_signals, needs_follow_up, tps_registered, include_snoozed, include_archived, hide_disqualified, vulnerable, text, sort, limit, page. |
| question | string | The plain-language question it answers. Optional. |
| shared | boolean | Default true. |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
update_saved_view
Write Edit a CRM segment
Rename a segment, share or unshare it, or replace its filters. Owners and managers can edit any; others only segments they made.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | From list_saved_views. |
| name | string | |
| shared | boolean | |
| filters | object | Replaces the filters. Omit to keep them. |
| question | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
delete_saved_view
Write Delete a CRM segment
PERMANENT: delete a saved segment for everyone who uses it. The leads are untouched. Owners and managers can delete any; others only their own. Confirm with the user first.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |