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

# Build a re-engagement list from Constant Contact non-openers

> Find Constant Contact contacts who skipped your last emails and put them in a list for one last send, before you decide who to remove.

Source: https://cotlet.dev/integrations/constant-contact-api-mcp-server/re-engagement-list

Contacts who never open your emails pull your open rate down, and every contact counts toward your plan. Before you remove anyone, you want one last email that goes only to them.

Cotlet does it in your own Constant Contact account with list\_emails, list\_email\_contacts, get\_contact, list\_lists, create\_list and add\_contacts\_to\_list, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Constant Contact do this on its own?

Constant Contact has a Did not open report per email, and segments that can filter on email activity and be saved to a list, for Account Owners and Account Managers (checked 22 Oct 2026). The v3 API has a did-not-open tracking report per email and a bulk add to a list. Nothing joins several emails into one non-opener list, and the official MCP server (beta) is built for transactional email.

## How you do it in Constant Contact today

1. Go to Channels > Emails, set Status to Sent, click the three dots on an email and choose Reporting.
2. Click the linked Did not open number to see the contacts who were sent the email and did not open it.
3. Repeat for each recent email, because the report covers one email at a time, and note who shows up in all of them.
4. In Contacts, select those people and use the Actions menu to add them to a list made for this send.
5. To target by activity without lists, Contacts > Segments can filter on email activity, but a segment is evaluated again at send time, so the group can change before your email goes out.

## How to build a re-engagement list from Constant Contact non-openers

Prompt

```
Find contacts who did not open any of my last 3 sent emails, put them in a new list called Re-engage Oct 2026 and tell me how many there are.
```

1. 01  
### Pick the emails  
list\_emails with status sent gives the sends; the agent takes the last 3, or the ones inside the window you named.
2. 02  
### Collect non-openers per email  
list\_email\_contacts with type did\_not\_open returns one page per call; the agent follows the cursor to the end for each email and keeps only contact IDs that appear in every one.
3. 03  
### Drop who should not get a send  
get\_contact checks each candidate. Anyone whose permission\_to\_send is unsubscribed, or who already sits in the target list, is skipped, so you never mail someone who opted out.
4. 04  
### Make or reuse the list  
list\_lists shows whether Re-engage Oct 2026 exists. If not, create\_list makes it, because a list needs a unique name; if it exists, the agent reuses it and does not create a second.
5. 05  
### Add in batches  
add\_contacts\_to\_list takes up to 500 contact IDs per call, so 1,300 contacts go in three calls. Each call waits for your OK by default, because adding contacts can move your account into a higher contact tier and puts them on any email scheduled to that list.

### What you get back

Example data

```
Sent emails checked: 3 (October newsletter, Webinar invite, Flash sale)
Did not open all 3: 212 contacts
Skipped 9 (unsubscribed) and 4 (already in the list)
Added 199 to Re-engage Oct 2026
```

### Other ways to ask

- Use only emails sent in the last 60 days and skip anyone who clicked a link in any of them.
- Add contacts who did not open the last 3 emails to the existing list Win-back and tell me the new list size.
- List the non-openers but do not add anyone, so I can read the names first.

## What Constant Contact allows, and what to know first

- A Constant Contact account holds up to 1,000 lists, and a contact can belong to up to 50 lists.
- Creating a list needs a name no other list has.
- One bulk add takes up to 500 contact IDs, so large groups go in several calls.
- Segments are for Account Owners and Account Managers, and a segment assigned to a campaign is evaluated when the campaign is scheduled to send.
- Constant Contact warns that an Account Manager who adds enough contacts can move the account into a higher contact tier and raise the invoice.

add\_contacts\_to\_list asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [Constant Contact Help: View the details and reporting for a sent email](https://knowledgebase.constantcontact.com/articles/KnowledgeBase/18668-help-overview-the-email-details-page?lang=en%5FUS) · [Constant Contact developers: Contact lists overview](https://developer.constantcontact.com/api%5Fguide/lists%5Foverview.html) · [Constant Contact developers: Segments overview](https://developer.constantcontact.com/api%5Fguide/segments%5Foverview.html) · [Constant Contact Help: Add and manage users in your account](https://knowledgebase.constantcontact.com/articles/KnowledgeBase/41588-Add-and-manage-users-in-your-Constant-Contact-account?lang=en%5FUS)

## Call add\_contacts\_to\_list from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/constant-contact/lists/9d2e4b7a-1c3f-4a58-b6e0-7f8a2c5d1e90/contacts-to-lists \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact_ids":["c1a2b3d4-0001-4e5f-8a9b-1c2d3e4f5a01","c1a2b3d4-0002-4e5f-8a9b-1c2d3e4f5a02","c1a2b3d4-0003-4e5f-8a9b-1c2d3e4f5a03"]}'
```

Example response

```
{
"list_id": "9d2e4b7a-1c3f-4a58-b6e0-7f8a2c5d1e90",
"requested": 3,
"added": 3
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is constant\_contact\_write → add\_contacts\_to\_list. Example data.

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

## Constant Contact tools this automation uses

__Cotlet Constant Contact tools used to build a re-engagement list from Constant Contact non-openers__
| Tool | Parameters |
| ----------------------- | ----------------------------------- |
| list\_emails | status, limit, cursor |
| list\_email\_contacts | email\_id, type, limit, cursor |
| get\_contact | contact\_id |
| list\_lists | limit, cursor |
| create\_list | name, description |
| add\_contacts\_to\_list | list\_id, contact\_ids, segment\_id |

[All 12 Constant Contact tools with descriptions](https://cotlet.dev/integrations/constant-contact-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Constant Contact to Cotlet?

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

- [Weekly Constant Contact email report with AI](https://cotlet.dev/integrations/constant-contact-api-mcp-server/weekly-email-report.md)
- [Schedule a recurring Constant Contact email by copying the last one](https://cotlet.dev/integrations/constant-contact-api-mcp-server/schedule-recurring-email.md)
- [Constant Contact API and MCP server: every tool](https://cotlet.dev/integrations/constant-contact-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Constant Contact.

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

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

---

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.
