Tidio
Manage Tidio live chat contacts and support tickets via the Tidio Public API.
What it does
- list_contacts — Retrieve a paginated list of contacts (optionally filter by email).
- get_contact — Fetch a single contact by UUID.
- create_contact — Add a new contact with name, email, and/or phone.
- list_tickets — Retrieve a paginated list of support tickets.
- get_ticket — Fetch a single support ticket by UUID (includes full message history).
- update_ticket — Change the status or priority of a ticket.
Authentication
Tidio uses two custom HTTP headers for every request:
| Header | Value |
|---|---|
X-Tidio-Openapi-Client-Id |
Your Client ID (ci_…) — mapped to apiKey input |
X-Tidio-Openapi-Client-Secret |
Your Client Secret (cs_…) — mapped to clientSecret input |
To generate credentials: Tidio Panel > Settings > Developer > OpenAPI > Generate keys.
Only project owners and administrators can create API keys.
Inputs
| Input | Required | Description |
|---|---|---|
apiKey |
yes | Tidio Client ID (ci_…) |
clientSecret |
yes | Tidio Client Secret (cs_…) |
operation |
yes | One of the six operations listed above |
contactId |
for get_contact | UUID of the contact |
ticketId |
for get_ticket / update_ticket | UUID of the ticket |
email |
for create_contact | Contact email address |
firstName |
for create_contact | Contact first name |
lastName |
for create_contact | Contact last name |
phone |
for create_contact | Contact phone number |
distinctId |
for create_contact | Your own unique ID for the contact (required by Tidio, max 55 chars) |
emailCursor |
optional | Filter list_contacts results by email |
cursor |
optional | Pagination cursor from a previous list response |
ticketStatus |
for update_ticket | open, pending, or solved |
ticketPriority |
for update_ticket | low, normal, or urgent |
Outputs
| Output | Description |
|---|---|
result |
Raw JSON response body from the Tidio API |
status |
HTTP status code as a string (e.g. "200") |
Examples
List contacts:
{
"apiKey": "ci_abc123",
"clientSecret": "cs_xyz789",
"operation": "list_contacts"
}
Get a contact by ID:
{
"apiKey": "ci_abc123",
"clientSecret": "cs_xyz789",
"operation": "get_contact",
"contactId": "a1b2c3d4-1234-5678-abcd-ef0123456789"
}
Create a contact:
{
"apiKey": "ci_abc123",
"clientSecret": "cs_xyz789",
"operation": "create_contact",
"distinctId": "crm-user-1042",
"email": "[email protected]",
"firstName": "Jane",
"lastName": "Smith"
}
List open tickets (paginated):
{
"apiKey": "ci_abc123",
"clientSecret": "cs_xyz789",
"operation": "list_tickets"
}
Resolve a ticket:
{
"apiKey": "ci_abc123",
"clientSecret": "cs_xyz789",
"operation": "update_ticket",
"ticketId": "e6a82a74-1170-4f57-a031-b36f3f6bc093",
"ticketStatus": "solved"
}
Publishes
The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.
errorresultstatus
Input Properties
Every property this tool accepts, from its own tool.iml.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
apiKey |
string | yes | — | Tidio OpenAPI Client ID (prefixed ci_). Get from Tidio Panel > Developer > OpenAPI. |
clientSecret |
string | yes | — | Tidio OpenAPI Client Secret (prefixed cs_). Get from Tidio Panel > Developer > OpenAPI. |
operation |
string | yes | — | One of: list_contacts, get_contact, create_contact, list_tickets, get_ticket, update_ticket |
contactId |
string | no | — | Contact UUID for get_contact. |
ticketId |
string | no | — | Ticket UUID for get_ticket or update_ticket. |
email |
string | no | — | Contact email for create_contact (at least one of email/firstName/lastName/phone required). |
firstName |
string | no | — | Contact first name for create_contact. |
lastName |
string | no | — | Contact last name for create_contact. |
phone |
string | no | — | Contact phone number for create_contact. |
distinctId |
string | no | — | Your own unique identifier for create_contact (max 55 chars). Required by Tidio. |
emailCursor |
string | no | — | Filter contacts by email address for list_contacts. |
cursor |
string | no | — | Pagination cursor from a previous response for list_contacts or list_tickets. |
ticketStatus |
string | no | — | New ticket status for update_ticket: open, pending, or solved. |
ticketPriority |
string | no | — | New ticket priority for update_ticket: low, normal, or urgent. |