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

# Resend a Mailjet campaign to non-openers

> Segment Mailjet contacts who did not open a campaign, copy it with a new subject and schedule the resend to that segment, with your OK.

Source: https://cotlet.dev/integrations/mailjet-api-mcp-server/resend-campaign-to-non-openers

Your newsletter went out on Wednesday and a large share of the list never opened it. A resend means a segment, a copy of the campaign, a new subject and a schedule, all clicked through in the Dashboard.

Cotlet does it in your own Mailjet account with get\_campaign\_report, create\_segment, duplicate\_campaign, update\_campaign, set\_campaign\_recipients and schedule\_campaign, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Mailjet do this on its own?

Mailjet's guides describe the Dashboard route above and no automatic resend to non-openers (checked 22 Oct 2026). The REST API has endpoints for segments, drafts, scheduling and sending, so a script can do it. The official MCP server is read-only: it can show the open numbers but cannot build the segment or send the resend.

## How you do it in Mailjet today

1. Open Campaigns, click the campaign name and read the Overview tab to see how many contacts opened and clicked.
2. Go to Contacts, then Segmentation, click Create a segment, name it and add the filter "Not opened the campaign" for that campaign.
3. Add the filter "Is subscribed to list" for your newsletter list and combine both with AND, so the segment holds only current subscribers.
4. Back on Campaigns, open the Sent tab, click the cogwheel icon next to the campaign and choose Duplicate. Mailjet opens the Campaign Details page of the copy.
5. On that page change the subject, pick the contact list, choose "Only send to a segment", select your segment and click "Calculate number of contacts" to check the count.
6. Click Review & Send and schedule it. A scheduled campaign cannot be edited, so a typo means cancelling it and scheduling again.

## How to resend a Mailjet campaign to non-openers

Prompt

```
In Mailjet, check how the "Autumn offer" campaign did. Make a segment of everyone on the Newsletter list who did not open it, duplicate the campaign with the subject "Last chance: Autumn offer", send it to that segment and schedule it for Monday 8:00 London time.
```

1. 01  
### Read the first send  
get\_campaign\_report returns what was delivered, opened and clicked, and how many emails blocked or bounced. A campaign sent a few hours ago still collects opens, so the agent says how old the send is and asks whether to wait.
2. 02  
### Build the segment with two filters  
create\_segment gets match "all" with the filters "not opened the campaign" and "subscribed to list", and the list\_id so Mailjet counts the matching contacts. The agent adds the subscribed filter every time, so people who unsubscribed since the first send stay out.
3. 03  
### Copy the campaign and change what must differ  
duplicate\_campaign makes a draft from the sent campaign and update\_campaign sets the new subject. The agent leaves the design alone, so the resend looks like the original.
4. 04  
### Aim the draft at the segment  
set\_campaign\_recipients picks the list and the segment, the same as "Only send to a segment" in the Dashboard. Nothing is sent yet.
5. 05  
### Schedule it with your OK  
schedule\_campaign takes the date and time from your prompt, with the offset of your time zone. It reaches your contacts, so it waits for your OK by default.

### What you get back

Example data

```
Autumn offer (sent Oct 14): 1,840 delivered, 702 opened, 96 clicked
Segment "Did not open: Autumn offer" created, 1,121 contacts match
Draft "Autumn offer, last chance" created from the original, subject "Last chance: Autumn offer"
Recipients: list Newsletter, segment "Did not open: Autumn offer"
Scheduled for Mon Oct 26, 08:00 (UTC+00:00) after your OK
```

### Other ways to ask

- Resend the Monday newsletter to everyone who did not click, with the subject "Did you see this?".
- Do the same for every campaign from the last 7 days, but only create the drafts and schedule nothing.
- Create the segment "Did not open: Autumn offer" and stop, I will review it in the Dashboard.
- Every Friday, look at the newsletter sent on Wednesday and queue a resend to non-openers for Monday 8:00.

## What Mailjet allows, and what to know first

- Mailjet recalculates a segment at send time, so a contact who opens the first email before the resend goes out drops out of the audience.
- Segmentation is included in the Essential, Premium and Custom plans, and not in Free or Starter.
- The "not opened" filters need open tracking switched on in your Mailjet account settings.
- Mailjet updates the Activity tabs of campaign statistics only during the first 7 days after the send.
- Mailjet schedules a campaign up to 60 days ahead and does not let you edit it once scheduled.

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

Sources: [Mailjet Help: Segmentation guide](https://documentation.mailjet.com/hc/en-us/articles/360042958193-Segmentation-guide) · [Mailjet Help: Campaign Stats & Dashboard](https://documentation.mailjet.com/hc/en-us/articles/360042505174-Campaign-Stats-Dashboard) · [Mailjet Help: How to copy or duplicate a campaign](https://documentation.mailjet.com/hc/en-us/articles/360043178653-How-to-copy-or-duplicate-a-campaign) · [Mailjet Help: Creating and sending your first campaign](https://documentation.mailjet.com/hc/en-us/articles/360042910213-Creating-and-sending-your-first-campaign)

## Call create\_segment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/mailjet/segments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Did not open: Autumn offer","match":"all","conditions":[{"type":"campaign_not_opened","value":7164820931},{"type":"subscribed_to_list","value":10234567}],"list_id":10234567}'
```

Example response

```
{
"segment_id": 2938471,
"name": "Did not open: Autumn offer",
"match": "all",
"conditions": 2,
"matching_contacts": 1121,
"list_id": 10234567
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is mailjet\_write → create\_segment. Example data.

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

## Mailjet tools this automation uses

__Cotlet Mailjet tools used to resend a Mailjet campaign to non-openers__
| Tool | Parameters |
| ------------------------- | -------------------------------------------------------- |
| get\_campaign\_report | campaign\_id |
| create\_segment | name, match, conditions, list\_id |
| duplicate\_campaign | campaign\_id, name |
| update\_campaign | campaign\_id, name, subject, sender\_name, sender\_email |
| set\_campaign\_recipients | campaign\_id, list\_id, segment |
| schedule\_campaign | campaign\_id, send\_at |

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

## Frequently asked questions

### Is a "not opened" segment a clean list to resend to?

It is a good first guess, not a clean one. Open tracking depends on the recipient loading images, so some people who read the email count as non-openers. Mailjet recalculates the segment at send time, so the audience can still shrink between scheduling and sending.

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

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

- [Exclude inactive Mailjet contacts from campaigns](https://cotlet.dev/integrations/mailjet-api-mcp-server/exclude-inactive-contacts.md)
- [Schedule the next Mailjet newsletter from the last one](https://cotlet.dev/integrations/mailjet-api-mcp-server/schedule-next-newsletter.md)
- [Mailjet API and MCP server: every tool](https://cotlet.dev/integrations/mailjet-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Mailjet.

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

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

---

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.
