Turn broken Warmforge mailboxes into Linear tickets

Every four hours, catch Warmforge mailboxes that fall over, open a Linear ticket for the deliverability team, and ping the on-call Slack channel.

Agentic Task
WarmforgeLinearSlackOperationsSalesNotifications & AlertsResearch & Monitoring
PromptCreate

Build me an agent workflow that runs every four hours to catch Warmforge mailboxes that have fallen over and open a Linear ticket so the deliverability team can react. A Slack ping alone gets ignored, so a ticket must own each fix.

Trigger: cron, every 4 hours.

What the agent should do on each run:

1) Use Warmforge List Mailboxes to pull mailboxes with status disconnected, then again with status suspended. Warmforge's documented mailbox status filter values are warm, pending, disconnected, suspended, and all, so those two calls cover every broken state.

2) For each broken mailbox, call Warmforge Get Mailbox to grab full context: workspace, provider (Google, Microsoft 365, or SMTP/IMAP), last successful warmup date, and any campaign attachment info.

3) Before filing anything, dedupe. Use Linear Search Issues to look for an existing open ticket that mentions the mailbox address in the title or description. If one already exists, skip that mailbox and move on. This is what keeps the same broken mailbox from spawning a new ticket every four hours.

4) For each newly broken mailbox with no existing ticket, use Linear Create Issue in the RevOps team (or whichever team the user picks at setup). The title should include the mailbox address, for example "Warmforge mailbox disconnected: jane@acme.com". The description should capture the workspace, provider, current status, last successful warmup date, and the likely cause based on provider and status: expired OAuth for Google or Microsoft 365, revoked IMAP/SMTP credentials for SMTP mailboxes, or a Warmforge-side suspension. Set Linear priority using the priority integer: 1 (Urgent) if the mailbox is currently attached to active campaigns, 2 (High) otherwise, and 3 (Normal) if there is no campaign attachment info available.

5) After each ticket is created, use Slack Send a Message to post to the on-call channel the user specifies. The message should include the mailbox address, the reason it broke, and a direct link to the new Linear ticket so the on-call engineer can jump straight in.

Inputs the user should configure at setup:

- Warmforge workspace ID to monitor (or all workspaces if their key allows it).

- Linear team where deliverability tickets should live, and an optional default assignee.

- Slack channel for the on-call ping.

Operations to use: warmforge.List Mailboxes, warmforge.Get Mailbox, linear.Search Issues, linear.Create Issue, slack.Send a Message. Keep the run quiet when nothing is broken: no ticket, no Slack ping.

Additional information

What does this prompt do?
  • Checks your Warmforge workspace every four hours for mailboxes marked disconnected or suspended.
  • Opens a Linear ticket for each newly broken mailbox with the workspace, provider, status, and likely cause, and sets priority based on whether the mailbox is on an active campaign.
  • Posts a link to the new ticket in your on-call Slack channel so the deliverability team can react.
  • Dedupes against tickets it filed on previous runs, so the same broken mailbox does not spawn a fresh ticket every four hours.
What do I need to use this?
  • A Warmforge account with an API key from Settings.
  • A Linear workspace and a team (like RevOps or Deliverability) where tickets should land.
  • A Slack workspace and the channel where the on-call team wants to be pinged.
How can I customize it?
  • Change the schedule. Every four hours is a solid default, but you can move it to hourly during launches or daily for lighter mailboxes.
  • Pick a different Linear team or default assignee, and adjust how the agent decides Urgent vs High vs Normal priority.
  • Route the Slack ping to a different channel, or add a second notification to email or Microsoft Teams.

Frequently asked questions

How does it avoid filing the same ticket over and over?
Before creating a ticket, the agent searches existing Linear issues for the mailbox address. If a matching open ticket already exists, it skips creation and moves on to the next broken mailbox.
Which mailboxes count as broken?
Warmforge exposes a status on every mailbox. This workflow watches for the disconnected and suspended values, which cover expired OAuth tokens, revoked SMTP credentials, and Warmforge-side suspensions.
Can I route tickets to a team other than RevOps?
Yes. Tell the workflow author which Linear team should own deliverability tickets, and it will file into that team instead. You can also pin a default assignee.
Will the Slack message include enough context to act on?
Yes. Each Slack ping includes the mailbox address, the reason it is broken, and a direct link to the Linear ticket so the on-call engineer can jump straight in.
What if I want a different cadence than every four hours?
Any schedule works. Faster cadences catch outages sooner, slower ones cut noise. Tell the workflow author what interval you want and it will set the trigger accordingly.

Stop losing sends to silent mailbox failures.

Connect Warmforge, Linear, and Slack once. Geni watches for broken mailboxes every four hours and owns the handoff to your deliverability team.