MCP App Store
Productivity
Jordi Spoki icon

Jordi Spoki

by Spoki

Overview

Jordi Spoki connects ChatGPT to the Spoki staging account so users can inspect contacts, campaigns, tickets, lists, templates, automations, and CRM records, then perform supported Spoki workflow updates through the MCP tools.

Tools

activate_automation

ChatGPT
Activate a paused automation so it can receive new triggers.

activate_automation

ChatGPT
Activate a paused automation so it can receive new triggers.

add_contacts_to_deal

ChatGPT
Link one or more contacts to an existing deal. Existing linked contacts are not removed — this only adds. To remove a contact use remove_contact_from_deal. Workflow: call get_contacts to get contact_ids, call search_deals to get deal_id if needed. All contact IDs must belong to the same account. Returns the updated deal with the full contact list.

add_contacts_to_deal

ChatGPT
Link one or more contacts to an existing deal. Existing linked contacts are not removed — this only adds. To remove a contact use remove_contact_from_deal. Workflow: call get_contacts to get contact_ids, call search_deals to get deal_id if needed. All contact IDs must belong to the same account. Returns the updated deal with the full contact list.

add_filtered_contacts_to_list

ChatGPT
Add all contacts matching advanced filters to an existing list. Max 50000 contacts per call.

add_filtered_contacts_to_list

ChatGPT
Add all contacts matching advanced filters to an existing list. Max 50000 contacts per call.

add_note

ChatGPT
Add an internal note to a contact's conversation. Notes are only visible to operators, not sent to the contact.

add_note

ChatGPT
Add an internal note to a contact's conversation. Notes are only visible to operators, not sent to the contact.

add_tags_to_contact

ChatGPT
Add tags to a contact. Returns which were added, already present on the contact, and which tag IDs were not found. Call get_contact_tags first to know the contact's current tags.

add_tags_to_contact

ChatGPT
Add tags to a contact. Returns which were added, already present on the contact, and which tag IDs were not found. Call get_contact_tags first to know the contact's current tags.

assign_ticket

ChatGPT
Assign a ticket to an operator. Pass owner_id=null to unassign.

assign_ticket

ChatGPT
Assign a ticket to an operator. Pass owner_id=null to unassign.

block_contact

ChatGPT
Block or unblock a contact. Blocked contacts will not receive messages.

block_contact

ChatGPT
Block or unblock a contact. Blocked contacts will not receive messages.

bulk_update_deals

ChatGPT
Assign a new owner and/or move multiple deals to a new stage in a single operation. Use when the user wants to reassign or batch-move several deals at once. Workflow: call search_deals to find the deals and collect their IDs, then present the count and names to the user for confirmation. Only set confirmed=True after the user explicitly confirms the bulk action. Returns counts of updated and failed deals.

bulk_update_deals

ChatGPT
Assign a new owner and/or move multiple deals to a new stage in a single operation. Use when the user wants to reassign or batch-move several deals at once. Workflow: call search_deals to find the deals and collect their IDs, then present the count and names to the user for confirmation. Only set confirmed=True after the user explicitly confirms the bulk action. Returns counts of updated and failed deals.

clear_list

ChatGPT
Remove ALL contacts from a list. The list itself is kept but emptied.

clear_list

ChatGPT
Remove ALL contacts from a list. The list itself is kept but emptied.

clone_list_as_static

ChatGPT
Snapshot the current members of an existing list (typically a dynamic one) into a NEW static list. Use this when the user wants to 'freeze' an auto-updating list as it is right now — the new list is independent, won't auto-refresh, and won't change when the source's rules or members change. Source can be any list type; the destination is always static. Capped at 50000 contacts.

clone_list_as_static

ChatGPT
Snapshot the current members of an existing list (typically a dynamic one) into a NEW static list. Use this when the user wants to 'freeze' an auto-updating list as it is right now — the new list is independent, won't auto-refresh, and won't change when the source's rules or members change. Source can be any list type; the destination is always static. Capped at 50000 contacts.

close_deal

ChatGPT
Mark a deal as closed by stamping closed_datetime to the current time. Does NOT move the deal to a Won or Lost stage — use move_deal_stage after this if a stage change is also needed. Use when the user says a deal is 'closed', 'done', 'finished', or 'completed'. Requires deal_id — call search_deals first if you don't have it. Returns the updated deal.

close_deal

ChatGPT
Mark a deal as closed by stamping closed_datetime to the current time. Does NOT move the deal to a Won or Lost stage — use move_deal_stage after this if a stage change is also needed. Use when the user says a deal is 'closed', 'done', 'finished', or 'completed'. Requires deal_id — call search_deals first if you don't have it. Returns the updated deal.

close_ticket

ChatGPT
Close a ticket and set its closed timestamp.

close_ticket

ChatGPT
Close a ticket and set its closed timestamp.

create_campaign

ChatGPT
Create a new scheduled campaign. Provide either template_id (auto-creates automation) or automation_id.

create_campaign

ChatGPT
Create a new scheduled campaign. Provide either template_id (auto-creates automation) or automation_id.

create_custom_field

ChatGPT
Create a new custom contact field. Fails with CODE_RESERVED or CODE_ALREADY_EXISTS if the code collides.

create_custom_field

ChatGPT
Create a new custom contact field. Fails with CODE_RESERVED or CODE_ALREADY_EXISTS if the code collides.

create_deal

ChatGPT
Create a new deal. Required: name, pipeline_id, stage_id. Optional: amount (display units — e.g. 5000.0 for €5,000), currency (default EUR), owner_id, contact_ids (list of contact UUIDs to link), close_date (YYYY-MM-DD), reference. Workflow: call list_pipelines first to get pipeline_id and stage_id; call get_contacts first to get contact_ids if the user mentions linking a contact. Duplicate guard: if a deal with the same name already exists the tool returns the existing deal(s) and asks to confirm — set force_create=True only after the user explicitly confirms they want a duplicate. Returns the created deal with its id, a direct URL, and contacts_linked status.

create_deal

ChatGPT
Create a new deal. Required: name, pipeline_id, stage_id. Optional: amount (display units — e.g. 5000.0 for €5,000), currency (default EUR), owner_id, contact_ids (list of contact UUIDs to link), close_date (YYYY-MM-DD), reference. Workflow: call list_pipelines first to get pipeline_id and stage_id; call get_contacts first to get contact_ids if the user mentions linking a contact. Duplicate guard: if a deal with the same name already exists the tool returns the existing deal(s) and asks to confirm — set force_create=True only after the user explicitly confirms they want a duplicate. Returns the created deal with its id, a direct URL, and contacts_linked status.

create_list

ChatGPT
Create a new contact list.

create_list

ChatGPT
Create a new contact list.

create_list_from_filters

ChatGPT
Create a new contact list from advanced filters. Use search_contacts_advanced first to preview matching contacts. list_type='static' (default): snapshot the contacts matching NOW — membership is frozen (capped at 50000 contacts). list_type='dynamic': membership auto-refreshes whenever contacts start/stop matching the filters (no size cap; refresh runs asynchronously after creation). Supports all filter keys: tag_{id}, list_{id}, language, email, ticket_status, etc.

create_list_from_filters

ChatGPT
Create a new contact list from advanced filters. Use search_contacts_advanced first to preview matching contacts. list_type='static' (default): snapshot the contacts matching NOW — membership is frozen (capped at 50000 contacts). list_type='dynamic': membership auto-refreshes whenever contacts start/stop matching the filters (no size cap; refresh runs asynchronously after creation). Supports all filter keys: tag_{id}, list_{id}, language, email, ticket_status, etc.

create_pipeline

ChatGPT
Create a new sales pipeline with an ordered list of stages. Stage order is assigned automatically from list position (first item = order 0). Rules: always include a Won stage (probability=100) and a Lost stage (probability=0); all other stages represent open/active phases and should have probability between 1 and 99. The operation is atomic — either all stages are created or none are. Returns the created pipeline with its stages and their assigned IDs.

create_pipeline

ChatGPT
Create a new sales pipeline with an ordered list of stages. Stage order is assigned automatically from list position (first item = order 0). Rules: always include a Won stage (probability=100) and a Lost stage (probability=0); all other stages represent open/active phases and should have probability between 1 and 99. The operation is atomic — either all stages are created or none are. Returns the created pipeline with its stages and their assigned IDs.

create_tag

ChatGPT
Create a new tag. Defaults to spoki-green. Fails if a tag with the same name already exists.

create_tag

ChatGPT
Create a new tag. Defaults to spoki-green. Fails if a tag with the same name already exists.

create_tag_category

ChatGPT
Create a new tag category. Fails if a category with the same name already exists.

create_tag_category

ChatGPT
Create a new tag category. Fails if a category with the same name already exists.

create_template

ChatGPT
Create a new message template. If a template with the same name exists, returns an error asking to confirm replacement.

create_template

ChatGPT
Create a new message template. If a template with the same name exists, returns an error asking to confirm replacement.

create_ticket

ChatGPT
Create a new support ticket. Requires a contact_id. Optionally assign to a category and owner.

create_ticket

ChatGPT
Create a new support ticket. Requires a contact_id. Optionally assign to a category and owner.

deactivate_automation

ChatGPT
Deactivate an automation. It will stop receiving new triggers but running instances continue.

deactivate_automation

ChatGPT
Deactivate an automation. It will stop receiving new triggers but running instances continue.

delete_custom_field

ChatGPT
Soft-delete a custom field: deactivates referencing automation steps, removes per-contact values, and suffix-renames the field so its code is freed for reuse. Call get_custom_field_usage first to preview the impact and confirm with the user before invoking this tool.

delete_custom_field

ChatGPT
Soft-delete a custom field: deactivates referencing automation steps, removes per-contact values, and suffix-renames the field so its code is freed for reuse. Call get_custom_field_usage first to preview the impact and confirm with the user before invoking this tool.

delete_deal

ChatGPT
Permanently and irreversibly delete a deal. ALWAYS show the deal name and amount to the user and ask for explicit confirmation before calling this tool. Only set confirmed=True after the user has confirmed. Requires deal_id — call search_deals first if you don't have it. Returns {'deleted': True, 'deal_id': '...'}.

delete_deal

ChatGPT
Permanently and irreversibly delete a deal. ALWAYS show the deal name and amount to the user and ask for explicit confirmation before calling this tool. Only set confirmed=True after the user has confirmed. Requires deal_id — call search_deals first if you don't have it. Returns {'deleted': True, 'deal_id': '...'}.

delete_list

ChatGPT
Delete a contact list (soft delete).

delete_list

ChatGPT
Delete a contact list (soft delete).

delete_tag

ChatGPT
Soft-delete a tag from the account. Returns contacts_affected (number of contacts that had this tag). Warn the user about contacts_affected before calling.

delete_tag

ChatGPT
Soft-delete a tag from the account. Returns contacts_affected (number of contacts that had this tag). Warn the user about contacts_affected before calling.

delete_template

ChatGPT
Delete a message template (soft delete).

delete_template

ChatGPT
Delete a message template (soft delete).

get_account_details

ChatGPT
Get comprehensive account details including status, type, WhatsApp configuration, current credit (EUR), and plan info.

get_account_details

ChatGPT
Get comprehensive account details including status, type, WhatsApp configuration, current credit (EUR), and plan info.

get_account_info

ChatGPT
Get basic account information (name, phone, language, timezone).

get_account_info

ChatGPT
Get basic account information (name, phone, language, timezone).

get_automation

ChatGPT
Get details of a specific automation by ID.

get_automation

ChatGPT
Get details of a specific automation by ID.

get_automation_stats

ChatGPT
Get automation statistics: total automations and active automations count.

get_automation_stats

ChatGPT
Get automation statistics: total automations and active automations count.

get_automations

ChatGPT
List automations for the account. Supports filtering by active status.

get_automations

ChatGPT
List automations for the account. Supports filtering by active status.

get_campaign

ChatGPT
Get a single campaign by its ID.

get_campaign

ChatGPT
Get a single campaign by its ID.

get_campaign_performance

ChatGPT
Get campaign performance data per campaign.

get_campaign_performance

ChatGPT
Get campaign performance data per campaign.

get_campaigns

ChatGPT
List scheduled campaigns for the account. Supports filtering by date range.

get_campaigns

ChatGPT
List scheduled campaigns for the account. Supports filtering by date range.

get_contact

ChatGPT
Get a single contact by its numeric ID.

get_contact

ChatGPT
Get a single contact by its numeric ID.

get_contact_field_values

ChatGPT
Resolve custom field values for a contact by UID and field codes.

get_contact_field_values

ChatGPT
Resolve custom field values for a contact by UID and field codes.

get_contact_stats

ChatGPT
Get contact statistics: total contacts, lists with contact counts, and tags with contact counts.

get_contact_stats

ChatGPT
Get contact statistics: total contacts, lists with contact counts, and tags with contact counts.

get_contact_tags

ChatGPT
Get all tags currently assigned to a contact. Returns id, name, and color per tag.

get_contact_tags

ChatGPT
Get all tags currently assigned to a contact. Returns id, name, and color per tag.

get_contacts

ChatGPT
Search and list contacts for the account. Supports filtering by name/phone (search) and blocked status (blocked_only).

get_contacts

ChatGPT
Search and list contacts for the account. Supports filtering by name/phone (search) and blocked status (blocked_only).

get_custom_field

ChatGPT
Get a single custom field by ID.

get_custom_field

ChatGPT
Get a single custom field by ID.

get_custom_field_usage

ChatGPT
Report the automations and templates that reference a custom field. Use before proposing a delete.

get_custom_field_usage

ChatGPT
Report the automations and templates that reference a custom field. Use before proposing a delete.

get_custom_fields

ChatGPT
List all active custom contact fields for the account.

get_custom_fields

ChatGPT
List all active custom contact fields for the account.

get_deal_analytics

ChatGPT
Compute CRM KPIs for a time period: total pipeline value (open deals), deals breakdown by stage, win rate, average deal size, and won/lost counts with revenue. Period presets: this_month, last_month, this_quarter, last_quarter, last_30_days, ytd. For a custom range set period='custom' and provide date_from + date_to (YYYY-MM-DD). Scope to a single pipeline with pipeline_id, or omit for account-wide numbers. Set compare=True to include the equivalent previous period and percentage deltas — useful for 'how did we do vs last month'. Amounts in the response are in tenthousandths — divide by 10000 for display (e.g. 50000000 = €5,000).

get_deal_analytics

ChatGPT
Compute CRM KPIs for a time period: total pipeline value (open deals), deals breakdown by stage, win rate, average deal size, and won/lost counts with revenue. Period presets: this_month, last_month, this_quarter, last_quarter, last_30_days, ytd. For a custom range set period='custom' and provide date_from + date_to (YYYY-MM-DD). Scope to a single pipeline with pipeline_id, or omit for account-wide numbers. Set compare=True to include the equivalent previous period and percentage deltas — useful for 'how did we do vs last month'. Amounts in the response are in tenthousandths — divide by 10000 for display (e.g. 50000000 = €5,000).

get_import_job

ChatGPT
Get the status and progress of a list-import job (returned by start_csv_import, import_from_klaviyo, or import_from_hubspot).

get_import_job

ChatGPT
Get the status and progress of a list-import job (returned by start_csv_import, import_from_klaviyo, or import_from_hubspot).

get_list

ChatGPT
Get a single contact list by its ID.

get_list

ChatGPT
Get a single contact list by its ID.

get_lists

ChatGPT
List all contact lists for the account. Supports search by name.

get_lists

ChatGPT
List all contact lists for the account. Supports search by name.

get_message_reports

ChatGPT
Get message and conversation reports from the report service.

get_message_reports

ChatGPT
Get message and conversation reports from the report service.

get_operators

ChatGPT
List operators (team members) for the account with their roles.

get_operators

ChatGPT
List operators (team members) for the account with their roles.

get_or_create_contact

ChatGPT
Get an existing contact by phone number or create a new one. Returns the full contact object and a created flag (true if newly created, false if already existed). Available to external clients via MCP.

get_or_create_contact

ChatGPT
Get an existing contact by phone number or create a new one. Returns the full contact object and a created flag (true if newly created, false if already existed). Available to external clients via MCP.

get_tag_categories

ChatGPT
Search and list tag categories for the account. Returns id, name, and tag_count per category.

get_tag_categories

ChatGPT
Search and list tag categories for the account. Returns id, name, and tag_count per category.

get_tags

ChatGPT
Search and list tags for the account. Returns id, name, color, order, contact_count and assigned categories. Use search to filter by name or category_id to filter by category. Search is fuzzy (PostgreSQL trigram similarity) and case-insensitive: minor typos and separator differences (e.g. 'blue monday' vs 'blue-monday') are tolerated. Results are ordered by similarity. contact_count excludes deleted and blocked contacts.

get_tags

ChatGPT
Search and list tags for the account. Returns id, name, color, order, contact_count and assigned categories. Use search to filter by name or category_id to filter by category. Search is fuzzy (PostgreSQL trigram similarity) and case-insensitive: minor typos and separator differences (e.g. 'blue monday' vs 'blue-monday') are tolerated. Results are ordered by similarity. contact_count excludes deleted and blocked contacts.

get_template

ChatGPT
Get a single message template by its ID, including all localizations and components.

get_template

ChatGPT
Get a single message template by its ID, including all localizations and components.

get_templates

ChatGPT
List message templates for the account. Supports search and filtering by approval status.

get_templates

ChatGPT
List message templates for the account. Supports search and filtering by approval status.

get_ticket

ChatGPT
Get a single ticket by ID with full details.

get_ticket

ChatGPT
Get a single ticket by ID with full details.

get_ticket_categories

ChatGPT
List available ticket categories for the account.

get_ticket_categories

ChatGPT
List available ticket categories for the account.

get_ticket_reports

ChatGPT
Get aggregated ticket statistics. Supports filtering by date range, granularity (0=Day, 1=Week, 2=Month, 3=Year), category, and owner.

get_ticket_reports

ChatGPT
Get aggregated ticket statistics. Supports filtering by date range, granularity (0=Day, 1=Week, 2=Month, 3=Year), category, and owner.

get_tickets

ChatGPT
Browse and search individual support tickets. Use ONLY when the user wants to see a list of specific tickets (e.g. 'show me open tickets', 'find tickets assigned to Matteo'). NOT for reports, stats, counts, summaries, or analytics — use ticket_stats_by_owner for those.

get_tickets

ChatGPT
Browse and search individual support tickets. Use ONLY when the user wants to see a list of specific tickets (e.g. 'show me open tickets', 'find tickets assigned to Matteo'). NOT for reports, stats, counts, summaries, or analytics — use ticket_stats_by_owner for those.

get_upcoming_events

ChatGPT
Get upcoming holidays and events for campaign planning.

get_upcoming_events

ChatGPT
Get upcoming holidays and events for campaign planning.

import_from_hubspot

ChatGPT
Create a new Spoki list by pulling contacts from a HubSpot list or segment. Requires an enabled HubSpot integration. Provide exactly one of hubspot_list_id or hubspot_segment_id. Returns job_id — poll with get_import_job.

import_from_hubspot

ChatGPT
Create a new Spoki list by pulling contacts from a HubSpot list or segment. Requires an enabled HubSpot integration. Provide exactly one of hubspot_list_id or hubspot_segment_id. Returns job_id — poll with get_import_job.

import_from_klaviyo

ChatGPT
Create a new Spoki list by pulling contacts from a Klaviyo list or segment. Requires an enabled Klaviyo integration. Provide exactly one of klaviyo_list_id or klaviyo_segment_id. Returns job_id — poll with get_import_job.

import_from_klaviyo

ChatGPT
Create a new Spoki list by pulling contacts from a Klaviyo list or segment. Requires an enabled Klaviyo integration. Provide exactly one of klaviyo_list_id or klaviyo_segment_id. Returns job_id — poll with get_import_job.

list_pipelines

ChatGPT
List all sales pipelines for the account, each with their ordered stages. Call this tool first whenever you need pipeline_id or stage_id — for example, before create_deal, update_deal (stage/pipeline move), move_deal_stage, or bulk_update_deals. Each pipeline includes: id, name, order, created_datetime, updated_datetime. Each stage includes: id, name, order, probability (0=Lost, 100=Won, other=open), created_datetime, updated_datetime. Use created_datetime / updated_datetime to answer questions about when a pipeline or stage was created or last changed. Set expand_stages=False only if you only need pipeline names and IDs.

list_pipelines

ChatGPT
List all sales pipelines for the account, each with their ordered stages. Call this tool first whenever you need pipeline_id or stage_id — for example, before create_deal, update_deal (stage/pipeline move), move_deal_stage, or bulk_update_deals. Each pipeline includes: id, name, order, created_datetime, updated_datetime. Each stage includes: id, name, order, probability (0=Lost, 100=Won, other=open), created_datetime, updated_datetime. Use created_datetime / updated_datetime to answer questions about when a pipeline or stage was created or last changed. Set expand_stages=False only if you only need pipeline names and IDs.

merge_tags

ChatGPT
Merge source tag into target tag: reassigns all contacts from source to target (skipping contacts that already have target), updates automation step references, and soft-deletes the source tag.

merge_tags

ChatGPT
Merge source tag into target tag: reassigns all contacts from source to target (skipping contacts that already have target), updates automation step references, and soft-deletes the source tag.

move_deal_stage

ChatGPT
Move a deal to a different stage within the same pipeline and control its vertical position in the kanban column. Use this for drag-and-drop style moves where the user specifies a position (0 = top of column). The target stage must belong to the deal's current pipeline — for cross-pipeline moves use update_deal instead. Requires deal_id and stage_id — call search_deals and list_pipelines first if you don't have them. Returns the updated deal.

move_deal_stage

ChatGPT
Move a deal to a different stage within the same pipeline and control its vertical position in the kanban column. Use this for drag-and-drop style moves where the user specifies a position (0 = top of column). The target stage must belong to the deal's current pipeline — for cross-pipeline moves use update_deal instead. Requires deal_id and stage_id — call search_deals and list_pipelines first if you don't have them. Returns the updated deal.

refresh_list

ChatGPT
Force an immediate recomputation of a dynamic list's membership. Bypasses the 60s debounce that normally batches signal-driven refreshes. Only works on dynamic lists — static lists reject this call. Returns immediately; the refresh itself runs as a background task.

refresh_list

ChatGPT
Force an immediate recomputation of a dynamic list's membership. Bypasses the 60s debounce that normally batches signal-driven refreshes. Only works on dynamic lists — static lists reject this call. Returns immediately; the refresh itself runs as a background task.

remove_contact_from_deal

ChatGPT
Unlink a single contact from a deal. The contact is not deleted — only the association is removed. Other contacts linked to the deal are unaffected. Requires deal_id and contact_id — call search_deals and get_contacts if you don't have them. Returns the updated deal with the remaining contact list.

remove_contact_from_deal

ChatGPT
Unlink a single contact from a deal. The contact is not deleted — only the association is removed. Other contacts linked to the deal are unaffected. Requires deal_id and contact_id — call search_deals and get_contacts if you don't have them. Returns the updated deal with the remaining contact list.

remove_contacts_from_list

ChatGPT
Remove contacts from a list by IDs. Max 500 IDs.

remove_contacts_from_list

ChatGPT
Remove contacts from a list by IDs. Max 500 IDs.

remove_filtered_contacts_from_list

ChatGPT
Remove all contacts matching advanced filters from a list. Max 50000 contacts per call.

remove_filtered_contacts_from_list

ChatGPT
Remove all contacts matching advanced filters from a list. Max 50000 contacts per call.

remove_tags_from_contact

ChatGPT
Remove tags from a contact. Returns which were removed, which were not present on the contact, and which tag IDs were not found in the account.

remove_tags_from_contact

ChatGPT
Remove tags from a contact. Returns which were removed, which were not present on the contact, and which tag IDs were not found in the account.

reopen_deal

ChatGPT
Reopen a closed deal by clearing its closed_datetime. Does NOT change the stage — after reopening, ask the user whether they also want to move the deal back to an open stage. Use when the user says a deal was 'closed by mistake', 'should be active again', or 'needs to be reopened'. Requires deal_id — call search_deals first if you don't have it. Returns the updated deal.

reopen_deal

ChatGPT
Reopen a closed deal by clearing its closed_datetime. Does NOT change the stage — after reopening, ask the user whether they also want to move the deal back to an open stage. Use when the user says a deal was 'closed by mistake', 'should be active again', or 'needs to be reopened'. Requires deal_id — call search_deals first if you don't have it. Returns the updated deal.

search_contacts_advanced

ChatGPT
Search contacts with advanced filters. Supports filtering by tags, lists, language, email, operators, ticket status, conversations, custom fields, and AND/OR logic. Returns a preview of matching contacts and the total count. Use get_tags/get_lists first to find IDs for tag_/list_ filter keys.

search_contacts_advanced

ChatGPT
Search contacts with advanced filters. Supports filtering by tags, lists, language, email, operators, ticket status, conversations, custom fields, and AND/OR logic. Returns a preview of matching contacts and the total count. Use get_tags/get_lists first to find IDs for tag_/list_ filter keys.

search_deals

ChatGPT
Find and list deals. Use this tool to: look up a deal by name or contact to get its deal_id before updating/deleting it; filter deals by pipeline, stage, owner, close date, creation date, or last-modified date; show the user their deals. The 'search' param matches against deal name, reference, and linked contact name/phone/email. Returns paginated results (20 per page) — increment 'page' to get more. Each deal includes id, name, pipeline, stage, amount_tenthousand (divide by 10000 for display), currency, owner, contacts, reference, created_datetime, updated_datetime, and closed_datetime (null = open deal; non-null = closed/won/lost). Always call this first when you need a deal_id for update_deal, move_deal_stage, delete_deal, close_deal, reopen_deal, add_contacts_to_deal, or remove_contact_from_deal.

search_deals

ChatGPT
Find and list deals. Use this tool to: look up a deal by name or contact to get its deal_id before updating/deleting it; filter deals by pipeline, stage, owner, close date, creation date, or last-modified date; show the user their deals. The 'search' param matches against deal name, reference, and linked contact name/phone/email. Returns paginated results (20 per page) — increment 'page' to get more. Each deal includes id, name, pipeline, stage, amount_tenthousand (divide by 10000 for display), currency, owner, contacts, reference, created_datetime, updated_datetime, and closed_datetime (null = open deal; non-null = closed/won/lost). Always call this first when you need a deal_id for update_deal, move_deal_stage, delete_deal, close_deal, reopen_deal, add_contacts_to_deal, or remove_contact_from_deal.

send_text_message

ChatGPT
Send a free-form text message to a contact via WhatsApp. The contact must not be blocked.

send_text_message

ChatGPT
Send a free-form text message to a contact via WhatsApp. The contact must not be blocked.

set_contact_field_value

ChatGPT
Set (create or update) a custom field value for a contact. Identify the field by field_code (e.g., 'COMPANY_NAME'). Returns the new contact_field plus the previous_value (null if it didn't exist). Use get_custom_fields to discover available codes.

set_contact_field_value

ChatGPT
Set (create or update) a custom field value for a contact. Identify the field by field_code (e.g., 'COMPANY_NAME'). Returns the new contact_field plus the previous_value (null if it didn't exist). Use get_custom_fields to discover available codes.

stop_contact_automation

ChatGPT
Stop a running automation for a contact.

stop_contact_automation

ChatGPT
Stop a running automation for a contact.

submit_template

ChatGPT
Submit a template for WhatsApp provider approval.

submit_template

ChatGPT
Submit a template for WhatsApp provider approval.

sync_contacts_to_list

ChatGPT
Add contacts to a list by IDs. Contacts already in the list are skipped. Max 500 IDs.

sync_contacts_to_list

ChatGPT
Add contacts to a list by IDs. Contacts already in the list are skipped. Max 500 IDs.

ticket_stats_by_owner

ChatGPT
Get ticket statistics grouped by owner/agent. Use for ANY query about ticket stats, reports, summaries, team performance, counts per operator, or 'how many tickets'. Returns exact DB-aggregated counts for ALL tickets in the period — no sampling, no limit. Filters: activity_from/activity_to (ISO date strings, e.g. '2026-04-01').

ticket_stats_by_owner

ChatGPT
Get ticket statistics grouped by owner/agent. Use for ANY query about ticket stats, reports, summaries, team performance, counts per operator, or 'how many tickets'. Returns exact DB-aggregated counts for ALL tickets in the period — no sampling, no limit. Filters: activity_from/activity_to (ISO date strings, e.g. '2026-04-01').

ticket_stats_by_owner_and_date

ChatGPT
Get ticket statistics grouped by owner and period.

ticket_stats_by_owner_and_date

ChatGPT
Get ticket statistics grouped by owner and period.

trigger_automation

ChatGPT
Start an automation for a specific contact. The automation must be active and the contact must not be blocked. By default, fails if the contact is already running or queued in the automation; pass force=True to bypass that check and create a new run.

trigger_automation

ChatGPT
Start an automation for a specific contact. The automation must be active and the contact must not be blocked. By default, fails if the contact is already running or queued in the automation; pass force=True to bypass that check and create a new run.

update_contact

ChatGPT
Update a contact's information. Only the provided fields will be changed.

update_contact

ChatGPT
Update a contact's information. Only the provided fields will be changed.

update_custom_field

ChatGPT
Update a custom field's label, code, type or example.

update_custom_field

ChatGPT
Update a custom field's label, code, type or example.

update_deal

ChatGPT
Update one or more fields of an existing deal. Only the fields you provide are changed — omitted fields are left untouched. Use this tool whenever the user asks to: rename a deal (name), change the amount or currency, reassign the owner (owner_id; pass empty string to unassign), set or clear the expected close date (close_date YYYY-MM-DD; pass null to remove it), set or clear the reference (pass null to remove it), or move a deal to a different stage (stage_id) or a different pipeline (pipeline_id + stage_id together). For kanban reordering within a stage use move_deal_stage instead. Requires deal_id — call search_deals first if you don't have it. Returns the full updated deal.

update_deal

ChatGPT
Update one or more fields of an existing deal. Only the fields you provide are changed — omitted fields are left untouched. Use this tool whenever the user asks to: rename a deal (name), change the amount or currency, reassign the owner (owner_id; pass empty string to unassign), set or clear the expected close date (close_date YYYY-MM-DD; pass null to remove it), set or clear the reference (pass null to remove it), or move a deal to a different stage (stage_id) or a different pipeline (pipeline_id + stage_id together). For kanban reordering within a stage use move_deal_stage instead. Requires deal_id — call search_deals first if you don't have it. Returns the full updated deal.

update_list

ChatGPT
Update a contact list's name or color.

update_list

ChatGPT
Update a contact list's name or color.

update_list_rules

ChatGPT
Replace the filter rules of an existing dynamic (auto-updating) list. Membership is recomputed asynchronously after the rules are saved. Only works on lists where list_type='dynamic' — static lists reject this call. Read current rules first via get_list({id}) so you can merge/extend rather than overwrite.

update_list_rules

ChatGPT
Replace the filter rules of an existing dynamic (auto-updating) list. Membership is recomputed asynchronously after the rules are saved. Only works on lists where list_type='dynamic' — static lists reject this call. Read current rules first via get_list({id}) so you can merge/extend rather than overwrite.

update_tag

ChatGPT
Update a tag's name, color, display order, and/or categories. Only the provided fields are changed.

update_tag

ChatGPT
Update a tag's name, color, display order, and/or categories. Only the provided fields are changed.

update_template

ChatGPT
Update fields of an existing template. v1 only supports header_media_url — pass it to set/replace the template's header image (applied to ALL localizations, promotes text-format headers to image). On image apply, locks the per-template generation slot (3-attempt cap) and returns slot_key. Future versions will extend to name, category, body, footer, and buttons; the response shape stays the same.

update_template

ChatGPT
Update fields of an existing template. v1 only supports header_media_url — pass it to set/replace the template's header image (applied to ALL localizations, promotes text-format headers to image). On image apply, locks the per-template generation slot (3-attempt cap) and returns slot_key. Future versions will extend to name, category, body, footer, and buttons; the response shape stays the same.

update_ticket

ChatGPT
Update a ticket's fields. Only provided fields are changed.

update_ticket

ChatGPT
Update a ticket's fields. Only provided fields are changed.

Capabilities

Writes

App Stats

178

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily