[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Update Tidio contact properties and tags in bulk

> Set Tidio contact properties and tags for a whole list from your CRM export or a rule, instead of editing contacts one by one. Runs weekly.

Source: https://cotlet.dev/integrations/tidio-api-mcp-server/update-contact-properties

Your CRM says who is a paying customer, but Tidio only knows what visitors typed into a chat, so segments and Flows target the wrong people.

Cotlet does it in your own Tidio account with list\_contacts, get\_contact and update\_contact, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=tidio) [All Tidio tools](https://cotlet.dev/integrations/tidio-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Tidio do this on its own?

Tidio imports contacts from CSV and TXT files, and its Flows can set a property with the Update Contact Property action (checked 17 Oct 2026). The OpenAPI has contact create, batch update and patch endpoints on Plus and Premium only, with 60 requests per minute on Plus, and no official MCP server can call them. On Free, Starter and Growth there is no API route, and an import file cannot be run on a rule you describe in words.

## How you do it in Tidio today

1. In Tidio the Contacts list shows built-in properties such as Name, Email, Last seen, Tags and Conversation rating, and the Customize button picks which columns show.
2. A new property is created in Settings > Fields, on the Contact properties tab, with Create a Contact Property; its type cannot be changed later.
3. Properties of one contact are edited in the visitor details section on the right side of a chat.
4. Bulk changes go through the Import button above the All contacts list: a CSV or TXT file, mapped column by column and confirmed.
5. A segment holds contacts matching filters, so it follows the property you set; segments cannot be filled by choosing contacts by hand.

## How to update Tidio contact properties and tags in bulk

Prompt

```
List Tidio contacts with an email on our domain list, set their plan property to customer and add the tag vip to the ones I name, then tell me how many changed.
```

1. 01  
### Read the contact list  
list\_contacts returns contacts with their properties and tags, and filters by email, so the agent can match a list you paste against what Tidio holds.
2. 02  
### Match and decide  
Each row of your list is matched by email; contacts missing from Tidio are listed and not created, and contacts that already have the value are skipped.
3. 03  
### Check the property exists  
get\_contact shows the property names the contact already has, so the agent only writes to properties that exist in Settings > Fields and reports a name it cannot find.
4. 04  
### Write the change  
update\_contact sets the properties and adds or removes tags in one call per contact. It reaches no one and a wrong value is undone by calling it again.
5. 05  
### Report the count  
The agent reports how many contacts changed, how many were already correct and which emails were not found.

### What you get back

Example data

```
List rows: 120
Updated 97 (plan = customer)
Already correct 18
Not found in Tidio 5:
- ola@example.com
- r.kim@example.com
Tagged vip: 12
```

### Other ways to ask

- Add the tag churn-risk to contacts whose Last seen is older than 90 days.
- Set the property language from each contact's country and show me the mismatches.
- Every Friday, copy the plan column from this CSV into Tidio and email me the diff.

## What Tidio allows, and what to know first

- The Contacts list and its CSV export are on all Tidio plans, including Free; the export includes only the properties shown in the list.
- Contact properties cannot be deleted, only hidden, and a property type cannot change after it is created.
- In the OpenAPI a contact property has a name of up to 128 characters and a value of up to 1000 characters.
- A segment is built only from filters, so a property set by the agent moves contacts into the segment on its own.

update\_contact changes only your own Tidio data and reach no one else, so it runs without asking first.

Sources: [Tidio Help: The Contacts List](https://help.tidio.com/hc/en-us/articles/5445297342236-The-Contacts-List) · [Tidio Help: Contact Properties](https://help.tidio.com/hc/en-us/articles/5444927889052-Contact-Properties) · [Tidio Help: Import Contacts into Tidio](https://help.tidio.com/hc/en-us/articles/5463416657052-Import-Contacts-into-Tidio) · [Tidio developers: Get contacts](https://developers.tidio.com/reference/get%5Fcontacts.md)

## Call update\_contact from a script

curl

```
curl -X PATCH https://cotlet.dev/api/v1/tidio/contacts/c4d9e1a2-77b0-4e0f-9a31-5b2c8e6f0d13 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"properties":{"plan":"customer"},"add_tags":["vip"]}'
```

Example response

```
{
"contact_id": "c4d9e1a2-77b0-4e0f-9a31-5b2c8e6f0d13",
"properties": {
"plan": "customer"
},
"tags": [
"vip"
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is tidio\_write → update\_contact. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/tidio-api-mcp-server.md#automations)

## Tidio tools this automation uses

__Cotlet Tidio tools used to update Tidio contact properties and tags in bulk__
| Tool | Parameters |
| --------------- | ------------------------------------------------ |
| list\_contacts | email, tag, limit, cursor |
| get\_contact | contact\_id |
| update\_contact | contact\_id, properties, add\_tags, remove\_tags |

[All 14 Tidio tools with descriptions](https://cotlet.dev/integrations/tidio-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Tidio to Cotlet?

Yes. You sign in to Tidio yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Tidio once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Tidio automations

- [Triage Tidio support tickets by what the customer wrote](https://cotlet.dev/integrations/tidio-api-mcp-server/triage-support-tickets.md)
- [Reply to waiting Tidio tickets with AI](https://cotlet.dev/integrations/tidio-api-mcp-server/reply-to-support-tickets.md)
- [Tidio API and MCP server: every tool](https://cotlet.dev/integrations/tidio-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Tidio.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Tidio.

[Sign up free](https://cotlet.dev/app/signup?app=tidio)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
