ClickSend logo ClickSend automation · runs weekly

Remove opted-out contacts from ClickSend lists

A recipient who replies STOP lands on your Opt-Out List and nowhere else, so each active contact list still holds the number until someone cleans it.

Cotlet does it in your own ClickSend account with list_contact_lists, list_opt_outs, remove_opted_out_contacts and remove_duplicates, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can ClickSend do this on its own?

ClickSend moves an opt-out only to the Opt-Out List and leaves your other lists as they are (checked 23 Oct 2026). Cleaning them is the Clean Up menu in the dashboard, one list per run. The official MCP server only searches contact lists and has no opt-out or cleanup tool.

How you do it in ClickSend today

  1. Open the Opt-Out List in the Dashboard to see who opted out; recipients land there automatically when you use a valid opt-out method.
  2. Go to Contacts and open the list you want to clean.
  3. Click Clean Up, then Remove Opted-out.
  4. In the pop-up, pick the list that holds your opt-outs, for example the Opt-Out List, and click Remove.
  5. Repeat for each active list, because ClickSend cleans one list at a time.
  6. Numbers you collected outside ClickSend go in first, with Import Contacts or + New Contact on the Opt-Out List.

How to remove opted-out contacts from ClickSend lists

Prompt

Compare the Opt-Out List with every contact list except Staff test, remove the opted-out numbers and tell me how many each list lost.
  1. 01

    List the lists to clean

    list_contact_lists returns every list. The agent takes all of them except the ones your prompt names as exceptions, such as a staff test list, and says which it skipped.

  2. 02

    Read the Opt-Out List first

    list_opt_outs gives the opted-out numbers. If it is empty the agent stops, and it reports the count so you see what each cleanup is measured against.

  3. 03

    Clean one list per call

    remove_opted_out_contacts runs once for each list, because ClickSend cleans a single list per run. The agent records removed for each list from the call, and a list that fails does not stop the others.

  4. 04

    Add duplicates only when asked

    remove_duplicates runs only if your prompt asks for it, with the field you name, phone_number or email. The agent never compares across lists, as ClickSend does not.

  5. 05

    Report each list

    The agent returns the lists it cleaned with removed per list, the ones it skipped and any that failed, so the Monday send starts from lists that match the Opt-Out List.

What you get back

Example data

Opt-Out List: 212 numbers
Cleaned 4 of 5 lists:
- Newsletter subscribers: 37 removed
- Webinar leads: 12 removed
- Spring sale: 0 removed
- VIP customers: 5 removed
Skipped: Staff test (your exception)

Other ways to ask

  • Every Monday before the send, clean all lists against the Opt-Out List and tell me how many each list lost.
  • Add these 15 numbers from our CRM export to the Opt-Out List, then clean the Newsletter list.
  • Check which of my lists still hold opted-out numbers, but do not remove anyone.

What ClickSend allows, and what to know first

  • ClickSend adds an opted-out person only to the Opt-Out List; they stay on your other active contact lists until you clean each one.
  • Reply STOP works automatically only in SMS campaigns, and Quick SMS supports neither Reply STOP nor unsubscribe links.
  • The opt-out method depends on the sender: shared and dedicated numbers take STOP or an unsubscribe link, an own number only the link, an alpha tag the link or a prompt to reply STOP to your dedicated number.
  • A deleted STOP rule comes back under Message Settings > SMS & MMS > Inbound Rules, with Match For Message starts with, Search Term Stop and the action MOVE_CONTACT to the Opt-Out List.
  • With Share Contacts off, each subaccount sees only its own lists, so each subaccount needs its own opt-out list and cleanup.

remove_opted_out_contacts and remove_duplicates ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: ClickSend Help: Managing opt-outs · ClickSend Help: Managing your contact lists · ClickSend Help: Inbound messaging rules · ClickSend Help: Setting up contact lists

Call remove_opted_out_contacts from a script

curl

curl -X DELETE "https://cotlet.dev/api/v1/clicksend/lists/128734/opted-out-contacts?opt_out_list=Opt-Out+List" \
  -H "Authorization: Bearer $COTLET_API_KEY"

Example response

{
  "list_id": 128734,
  "list": "Newsletter subscribers",
  "opt_out_list": "Opt-Out List",
  "removed": 37
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is clicksend_write → remove_opted_out_contacts. Example data.

Schedule it in n8n, Make, Zapier or cron

ClickSend tools this automation uses

Cotlet ClickSend tools used to remove opted-out contacts from ClickSend lists
Tool Parameters
list_contact_lists query, cursor
list_opt_outs query, cursor
remove_opted_out_contacts list_id, opt_out_list
remove_duplicates list_id, field
All 15 ClickSend tools with descriptions

Frequently asked questions

Is it safe to connect ClickSend to Cotlet?

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

Give your agent access to ClickSend.

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