[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)

# Add Mautic contacts to segments in bulk

> Move Mautic contacts into static segments by your own rule, skip Do Not Contact and report what changed. Runs weekly from an agent or a script.

Source: https://cotlet.dev/integrations/mautic-api-mcp-server/add-contacts-to-segments

A webinar brings a few dozen new contacts into one Mautic segment, and someone has to copy the right ones into the newsletter segment before Friday's send.

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

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

Hosted · nothing to install or maintain

## Can Mautic do this on its own?

Mautic does this by hand with the Change Segments batch action, or by a filter on a dynamic segment (checked 23 Oct 2026). A filter works only on fields marked Available for Segments, and it cannot read your own rule about which contacts count. The REST API needs to be enabled with OAuth2 or basic auth first.

## How you do it in Mautic today

1. In Contacts, use the search filters to find the records you want.
2. Tick their checkboxes, then click the green arrow at the top of the column.
3. Choose Change Segments, pick the segments to add to or remove from, then click Save.
4. For a single contact, open the Contact record, click the arrow at the top right, choose Preference, then Segments.
5. A dynamic segment cannot take hand-picked members, so the rule has to be a filter on the Filters tab, and only fields set to Available for Segments = Yes show up there.

## How to add Mautic contacts to segments in bulk

Prompt

```
Every Monday, take contacts who joined the webinar-leads segment this week and add them to the newsletter segment, unless they are Do Not Contact.
```

1. 01  
### Read the source segment  
list\_segment\_contacts returns the members of webinar-leads page by page. The agent keeps those whose join date falls in the week and drops the rest.
2. 02  
### Skip contacts who opted out  
get\_contact shows do\_not\_contact for each candidate. Anyone marked Do Not Contact stays out of the newsletter segment, because adding them would only create a send Mautic then blocks.
3. 03  
### Check the target type  
list\_segments shows whether newsletter is static. If it is dynamic, the agent stops and tells you to change the filter instead, since a filter decides its members.
4. 04  
### Add them in one call  
change\_contact\_segments puts all the chosen contacts into newsletter at once. It reaches nobody by itself and one call with remove undoes it, so it does not wait for your OK.
5. 05  
### Warn about campaigns  
If a campaign starts from the newsletter segment, the agent says so in the report, because new members may get that campaign's first email.

### What you get back

Example data

```
Contacts in webinar-leads this week: 64
Added to newsletter: 58
Skipped 5 (Do Not Contact)
Skipped 1 (already in newsletter)
Campaign starting from newsletter: Welcome series
```

### Other ways to ask

- Remove contacts from the newsletter segment who have not read an email in 90 days, and list them first.
- Add every contact with more than 50 points to the sales-ready segment, daily.
- Show which segments each contact from this CSV belongs to, and change nothing.

## What Mautic allows, and what to know first

- Mautic's Change Segments batch action adds contacts to or removes them from static segments; a dynamic segment takes its members from filters on its Filters tab.
- A segment set to Active = No cannot be used elsewhere in Mautic, but it still appears in the segment list.
- Segments can also be filled by a campaign action, Modify Contact's Segments, by a form submit action or by a CSV import with the segment picked at the top.
- In the Contacts search bar, segment:segment-alias lists the members of a segment.

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

Sources: [Mautic Documentation: Managing Segments](https://docs.mautic.org/en/5.x/segments/manage%5Fsegments.html) · [Mautic Documentation: Managing Contacts](https://docs.mautic.org/en/5.x/contacts/manage%5Fcontacts.html)

## Call change\_contact\_segments from a script

curl

```
curl -X PATCH https://cotlet.dev/api/v1/mautic/contact-segments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_ids":[1042,1388,1410],"add":["newsletter"]}'
```

Example response

```
{
"updated": 3,
"added": [
"newsletter"
],
"removed": []
}
```

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

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

## Mautic tools this automation uses

__Cotlet Mautic tools used to add Mautic contacts to segments in bulk__
| Tool | Parameters |
| ------------------------- | -------------------------- |
| list\_segments | none |
| list\_segment\_contacts | segment\_id, limit, cursor |
| get\_contact | contact\_id |
| change\_contact\_segments | contact\_ids, add, remove |

[All 15 Mautic tools with descriptions](https://cotlet.dev/integrations/mautic-api-mcp-server.md#tools)

## Frequently asked questions

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

Yes. You sign in to Mautic yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Mautic 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 Mautic automations

- [Merge duplicate Mautic contacts](https://cotlet.dev/integrations/mautic-api-mcp-server/merge-duplicate-contacts.md)
- [Weekly Mautic email performance report](https://cotlet.dev/integrations/mautic-api-mcp-server/weekly-email-report.md)
- [Mautic API and MCP server: every tool](https://cotlet.dev/integrations/mautic-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Mautic.

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

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

---

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.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

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.
