Resolve unsubscribe tickets without a MailForge login

Work every unsubscribe and unwanted email ticket from one screen, see exactly why an address stopped getting mail, and fix it without a marketing tool login.

App
MailForgeZendeskCustomer SupportOperationsEmail AutomationFeedback Triage
PromptCreate

Build me an app my support team opens to fix email subscription problems without ever logging into MailForge. It is a two pane working screen: a queue of relevant Zendesk tickets on the left, and the live MailForge state for that ticket's requester on the right. One person at a time, driven by an inbound support request.

Left pane, the ticket queue. Use the Zendesk Search Tickets operation with Zendesk query syntax to pull open and pending tickets about unsubscribes, unwanted email, and missing email (wording like unsubscribe, stop emails, remove me, too many emails, not receiving your emails, never got the email). Each row shows the ticket subject, its status, when it was last updated, and the requester's email address, which is the key to everything on the right. Resolve the requester to an email address using Zendesk Search Users, or Show User with the requester id on the ticket. Sort so the longest waiting tickets come first, and let me click a row to load it.

Right pane, the live MailForge state for that address. Three blocks. First, the contact record: call List Contacts with the email filter to get their name, status, and fields. If no contact exists for that address at all, say so plainly, because that changes the fix entirely. Second, list membership: call List Contact Lists to get every list in the organization with its subscriber counts, and cross reference against List Contacts filtered by list so I can see exactly which lists this person sits on. Third, suppression: call List Suppressions to check whether the address is on the suppression list and for what reason.

Put the suppression reason at the top of the right pane, large and impossible to miss, with a plain language explanation next to it, because a hard bounce needs a completely different answer than someone who clicked unsubscribe. A hard bounce means the mailbox rejected us and re-subscribing the same address will simply bounce again, so the customer needs to supply a working address. A spam complaint means they reported us and should generally stay suppressed. A manual unsubscribe means they chose to stop and can be re-subscribed if they are now asking to receive mail again. Shape the recommended fix around which of these it is, and never show the raw reason code on its own without that explanation.

From that same screen, let my agent take action on the address. Suppress it with Add Suppression so no future campaign reaches it. Lift a suppression with Remove Suppression when someone asks to start receiving mail again. Add them to a specific list with Add Contact to List, choosing which list from the ones already loaded. Subscribe a brand new address with Subscribe Contact when no contact record exists yet. Correct their name and other fields with Update Contact. Every one of these asks for confirmation first and shows exactly what is about to change.

Then close the loop on the ticket. After a change is applied, use Zendesk Update Ticket to post a reply and set the ticket status. Pre-fill the reply with the exact change that was just applied, written in plain customer facing language, and let me edit it before it sends. Support posting an internal note instead of a public reply when the change is not something the customer needs to read. Every applied change must end up written into the ticket one way or the other, so the ticket itself becomes the compliance trail.

Also keep an in-app log of every change applied through the app: the email address, what changed, which ticket it came from, who applied it, and when. The marketing ops owner occasionally audits what was changed, so give them a view they can scan and filter by date and by address, separate from the working queue.

Add a Read the thread button on each row that kicks off a background agent. The agent calls Zendesk List Ticket Comments to read the whole ticket conversation, checks the same MailForge state the right pane shows (List Contacts, List Contact Lists, List Suppressions), and decides whether this is a full unsubscribe, a single list opt out, or a deliverability complaint. It then writes back onto the row a recommended action, the reasoning behind it, and a draft reply. Its output lands on the row where the support agent can read it, edit it, and approve it.

Nothing is ever applied automatically. The embedded agent only recommends and drafts. A human clicks to apply every suppression, every lifted suppression, every list change, and every reply. Make that obvious in the interface so nobody assumes the agent already acted.

Who uses it: a support agent working the queue all day, and a marketing ops owner occasionally auditing what was changed. Design for the support agent first: the queue on the left and the answer on the right, with the suppression reason readable at a glance.

What does this prompt do?

  • Puts your open Zendesk tickets about unsubscribes, unwanted email, and missing email into a single queue, with each requester's email address right on the row.
  • Shows that address's live MailForge state beside the ticket: their contact record and status, every list they belong to, and whether they sit on the suppression list and for what reason.
  • Leads with the suppression reason, because a hard bounce, a spam complaint, and someone who simply clicked unsubscribe each call for a completely different answer.
  • Lets your team suppress an address, lift a suppression, add someone to a list, subscribe a brand new address, or correct their name and details, then reply and close the ticket with the exact change written into the reply.
  • Adds a Read the thread button that sends a background assistant through the whole conversation to work out whether this is a full unsubscribe, a single list opt out, or a deliverability complaint, then writes a recommended fix and a draft reply onto the row for a person to approve.

What do I need to use this?

  • A MailForge account, an API key from your MailForge settings, and the web address of your MailForge instance
  • A Zendesk account plus the email you sign in with and an API token (your Zendesk administrator can create one)
  • Support tickets in Zendesk where customers ask to stop receiving email, report unwanted email, or say your email never arrives
  • Your MailForge contact lists already set up, so the app can show which ones a person actually belongs to

How can I customize it?

  • Change the ticket search behind the queue so it matches how your customers and agents actually word these requests, or narrow it to one group, brand, or tag
  • Rewrite the suggested reply for each situation, so a bounce, a spam complaint, and a plain unsubscribe each get your own house wording
  • Choose whether an applied change is written back as a public reply to the customer or a private internal note, and which status the ticket moves to when you are done

FAQs

Does my support team need a MailForge login?
No, and that is the point. The app reads and updates MailForge on their behalf using one connection you set up once, so agents can see someone's subscription status and fix it without an account in your marketing tool.
Will the assistant change anything on its own?
No. The Read the thread assistant only reads the conversation and writes a recommendation and a draft reply onto the row. Suppressing an address, lifting a suppression, adding someone to a list, or replying to the ticket all take a human click.
Why does the suppression reason matter so much?
Because it decides the right answer. A hard bounce means the mailbox itself rejected your email, so re-subscribing will just bounce again and the customer needs to give you a working address. A spam complaint means they reported you and should usually stay suppressed. A manual unsubscribe means they chose to stop, so you can start sending again if they now ask you to.
Can I re-subscribe someone who asks to start receiving email again?
Yes. You can lift their suppression and add them to a specific list from the same screen. The app shows why they were suppressed first, so you know whether re-subscribing will actually work or whether you need to ask for a different address.
How do we prove what we changed if someone asks later?
Every change you apply gets written into the Zendesk ticket as part of the reply or as an internal note, so the ticket itself becomes the record. The app also keeps a log of every change, showing the address, what changed, which ticket it came from, and who did it.

Related templates

Pause marketing emails to escalated customers, then restore them

Twice a day we take anyone with a live high-priority support ticket off your campaign list, and put them back once support has fixed it.

MailForge
Zendesk
Slack Bot
Agentic Task
Look up any customer's email delivery history in one place

Your support team types a customer's email address and instantly sees every message you sent them, why it failed, and how to fix it.

Mailgun
HubSpot
Zendesk
App
Approve every MailForge campaign before a single email goes out

See every unsent draft and scheduled campaign in one place, run the pre-flight checks, and unlock Send only after a named reviewer signs off.

MailForge
Slack Bot
General Input Database
App
Know if your MailForge email sends are earning their keep

See how much of your monthly email allowance each campaign and contact list burned, which ones paid it back, and snapshot the period to a spreadsheet.

MailForge
Google Sheets
Slack Bot
App
Catch angry support tickets before the customer escalates

Open one board each morning to see which Zendesk tickets are turning hostile, why, and who has been waiting longest.

Zendesk
JigsawStack
Slack Bot
App
Account takeover ticket triage console for support teams

Work "I think I was hacked" tickets in one place: see each customer's real breach exposure beside their conversation, then note, tag, and reply with confidence.

Have I Been Pwned
Zendesk
App

Stop bouncing between your help desk and your email tool.

Give your support team one screen that explains why someone stopped getting your email and lets them fix it on the spot.