---
title: Tidio API Integration on Truto
slug: tidio
category: Helpdesk
canonical: "https://truto.one/integrations/detail/tidio/"
---

# Tidio API Integration on Truto



**Category:** Helpdesk  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 30 tools for Tidio that AI agents can call directly.

- **list_all_tidio_contacts** — List Tidio contacts with all their properties. Returns: id, distinct_id, first_name, last_name, email, phone, language, country, city, created_at, email_consent, properties. Supports filtering by email address.
- **create_a_tidio_contact** — Create a new Tidio contact. Returns: id. Required: distinct_id. At least one of email, first_name, last_name, or phone must also be provided.
- **get_single_tidio_contact_by_id** — Get a single Tidio contact by id. Returns: id, distinct_id, first_name, last_name, email, phone, language, country, city, created_at, email_consent, properties. Required: id.
- **update_a_tidio_contact_by_id** — Update a Tidio contact's properties such as email, phone, name, newsletter consent, and custom properties. Returns an empty 204 response on success. Required: id.
- **delete_a_tidio_contact_by_id** — Delete a Tidio contact by id. Once deleted, the contact cannot be recovered. Returns an empty 204 response on success. Required: id.
- **tidio_contacts_bulk_create** — Create up to 100 Tidio contacts in a single batch request using an all-or-nothing strategy. Returns: id, distinct_id, first_name, last_name, email, phone, language, country, city, created_at, email_consent, properties. Required: contacts array (each with distinct_id). At least one of email, first_name, last_name, or phone per contact.
- **tidio_contacts_bulk_update** — Update up to 100 Tidio contacts in a single batch request using an all-or-nothing strategy. Returns an empty 204 response on success. Required: contacts array (each with id). Settable: email, first_name, last_name, phone, distinct_id, email_consent, properties. Maximum 100 contacts per request.
- **list_all_tidio_contact_properties** — List all contact property definitions configured in the Tidio panel. Returns: name, label, type.
- **list_all_tidio_operators** — List all Tidio operators — chat agents who interact with customers or website visitors in real-time — with all their properties. Returns: id, active, email, name, role, picture, last_seen.
- **list_all_tidio_departments** — List all departments in Tidio. Departments are teams or groups of operators that handle specific types of customer inquiries or problems. Returns: id, name. The department id is a UUID used when assigning tickets via assigned_department_id.
- **list_all_tidio_tickets** — List all Tidio tickets with their details but without messages. Returns: id, link, status, subject, priority, contact_id, contact_email, assigned_operator_id, assigned_department_id, custom_channel_id.
- **get_single_tidio_ticket_by_id** — Get a single Tidio ticket by id with all details and messages. Returns: id, link, subject, contact_id, contact_email, priority, status, assigned_operator_id, assigned_department_id, custom_channel_id, messages. Required: id.
- **update_a_tidio_ticket_by_id** — Update a specific Tidio ticket by id to change its status, priority, assignment, tags, or custom fields. Returns an empty 204 response on success. Required: id.
- **delete_a_tidio_ticket_by_id** — Delete a specific Tidio ticket by id. Returns an empty 204 response on success. Required: id.
- **tidio_tickets_reply** — Add a reply message to an existing Tidio ticket, either from an operator or a contact. Returns: id. Required: ticket_id, author_type, content.
- **create_a_tidio_ticket** — Create a Tidio ticket on behalf of a contact. Returns: id. Required: contact_email, subject, message_content.
- **tidio_lyro_answer_ticket** — Ask the Tidio Lyro AI agent to generate an answer for a ticket based on the provided ticket data. Returns: message_content. Required: ticket_id, subject, contact_email, contact_name, recipient_email, messages. Responding can take up to 40 seconds and currently only works for the first message in a ticket.
- **tidio_lyro_data_sources_upsert_website** — Upload or update a website data source for the Tidio Lyro AI Agent. If a data source with the same URL already exists it is updated; otherwise a new one is created. Returns: id. Required: url, content, title.
- **tidio_lyro_data_sources_scrape_website** — Submit a website URL to be scraped and used as a knowledge data source for the Tidio Lyro AI Agent. Each URL must be unique per project. Returns: id. Required: url.
- **list_all_tidio_lyro_data_sources** — List data sources for the Tidio Lyro AI Agent, organized in a two-level hierarchy of folder and qa kinds. Returns: id, parent_id, title, type, kind, origin, status, used_by_lyro, used_by_copilot, sync_status, source_url, content, skip_auto_sync, manual_sync_available_at, next_auto_sync_at, created_at, updated_at.
- **create_a_tidio_lyro_data_source** — Create a QA data source for the Tidio Lyro AI Agent. The content is provided as text and processed by the AI Agent. Returns: id. Required: title, content.
- **update_a_tidio_lyro_data_source_by_id** — Update an existing QA data source for the Tidio Lyro AI Agent by id. Returns: id. Required: id, title, content.
- **delete_a_tidio_product_by_id** — Permanently delete a product from Tidio Lyro AI recommendations by id. Deletion is irreversible and processed asynchronously. Returns an empty 202 Accepted response indicating the deletion has been queued. Required: id.
- **tidio_products_bulk_upsert** — Bulk upload or update products for Tidio Lyro AI recommendations using batch processing. Products are processed in an all-or-nothing manner with a maximum of 100 products per request. Returns an empty 204 response on success. Required: products.
- **list_all_tidio_project** — Get information about the authenticated Tidio project. Returns: project_id, status.
- **list_all_tidio_contact_viewed_pages** — List pages a contact has viewed on your website in Tidio. Returns: url, viewed_at. Required: contact_id. Results cover the past 30 days.
- **list_all_tidio_contact_messages** — List messages in a Tidio contact's conversation, including messages from the contact, chat operators, and chatbots. Returns: id, author_type, author_id, message, created_at. Required: contact_id.
- **create_a_tidio_contact_message** — Send a message to a Tidio contact's conversation, attributed to the contact as if they sent it. Processing is asynchronous (202 Accepted). Returns: status. Required: contact_id, message. Message text must be 1–5000 characters.
- **list_all_tidio_ticket_tags** — List Tidio ticket tags for the authenticated project. Returns a flat list of {id, name} objects sorted alphabetically by name.
- **list_all_tidio_ticket_custom_fields** — List all ticket custom field definitions configured for the authenticated Tidio project. Returns: id, name, type, is_required, is_dynamic, values.

## How it works

1. **Link your customer's Tidio account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Tidio.** The Proxy API is a 1-to-1 mapping of the Tidio API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Keep Lyro AI trained on the latest documentation** — Knowledge base and CMS platforms can push newly published or updated articles into Tidio's Lyro AI automatically, so their users' support bot always answers with current information without manual re-syncs.
- **Turn Lyro into a live shopping assistant** — E-commerce, PIM, and inventory platforms can sync product catalogs, prices, and stock into Tidio so Lyro recommends only accurate, in-stock items during chat conversations.
- **Enrich CRM leads with Tidio chat context** — CRMs and marketing automation tools can pull contact details, viewed pages, and full chat transcripts from Tidio to segment leads and trigger behavior-based email flows.
- **Handle Tidio tickets from your own workspace** — Helpdesks, CRMs, and workflow tools can create, update, and reply to Tidio tickets from their own UI, so agents never have to switch tabs to manage live customer conversations.
- **AI-drafted replies inside your product** — Support tools can fetch a Tidio ticket, generate a Lyro-drafted response, and present it inside their own agent console for review — combining Tidio's AI with your product's workflow.

## What you can build

- **Automatic Lyro knowledge sync** — Push website URLs, scraped pages, and custom Q&A pairs into Tidio's Lyro data sources whenever content changes in your product.
- **Bulk product catalog upsert** — Batch-upload up to 100 products at a time into Tidio to power Lyro's product recommendations, with delete support for discontinued SKUs.
- **Two-way contact sync** — Create, update, and fetch Tidio contacts in bulk, and read custom contact properties to keep user profiles aligned between your product and Tidio.
- **Embedded ticket console** — List, view, update, reply to, and close Tidio tickets from inside your own UI, with access to ticket tags and custom fields for routing logic.
- **Lead enrichment with browsing intent** — Pull each contact's viewed pages and full message history from Tidio to enrich CRM records with real intent signals.
- **Agent and department-aware routing** — List Tidio operators and departments to assign new tickets to the right team based on your product's own routing rules.

## FAQs

### How is authentication to Tidio handled?

Truto manages the Tidio API credential exchange and token storage for you. Your end users connect their Tidio account once, and Truto handles credential refresh and secure storage — your app calls Truto with a connection ID.

### Can I sync product catalogs in bulk?

Yes. The tidio_products_bulk_upsert tool accepts batched product payloads (Tidio supports up to 100 products per call), which is the recommended way to keep Lyro's product recommendations current.

### Can I train Lyro AI programmatically?

Yes. You can upsert or scrape website URLs into Lyro's data sources, and create structured Q&A data sources via the create_a_tidio_lyro_data_source tool. Existing data sources can be listed, updated, or deleted.

### What contact context can I pull from Tidio?

Beyond core contact fields and custom contact properties, you can fetch each contact's viewed pages and full message history — useful for lead scoring, enrichment, and intent-based segmentation.

### Can I reply to Tidio tickets from my own product?

Yes. You can create tickets, fetch a ticket by ID, update or delete it, and post replies via tidio_tickets_reply. You can also send messages directly to a contact via create_a_tidio_contact_message.

### Can I use Lyro to draft replies inside my app?

Yes. The tidio_lyro_answer_ticket tool generates a Lyro-drafted response for a given ticket, which you can surface in your own agent UI for review before sending.

## Related reading

- [Connect Tidio to Claude: Resolve tickets and monitor user activity](https://truto.one/blog/connect-tidio-to-claude-resolve-tickets-and-monitor-user-activity/) — Learn how to connect Tidio to Claude using a managed MCP server. Automate ticket resolution, Lyro AI training, and support triage with Truto.
- [Connect Tidio to ChatGPT: Sync Customer Data and Manage Tickets](https://truto.one/blog/connect-tidio-to-chatgpt-sync-customer-data-and-manage-tickets/) — Learn how to build a managed MCP server to connect Tidio to ChatGPT. Automate ticket routing, sync contact properties, and manage Lyro AI data sources.
- [Connect Tidio to AI Agents: Train Lyro AI & Sync Knowledge Bases](https://truto.one/blog/connect-tidio-to-ai-agents-train-lyro-ai-and-sync-knowledge-bases/) — Learn how to connect Tidio to AI Agents using Truto's /tools endpoint. Build autonomous workflows to resolve tickets, train Lyro AI, and sync contact data without writing integration boilerplate.
