iMessage recovery for failed Stripe payments with LoopMessage

By General Input

When a Stripe payment fails, text the customer a polite recovery iMessage with a payment link, and brief revenue ops in Slack so a CSM can follow up.

Integrations

  • LoopMessage
  • Stripe
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Finance
  • Customer Support

Build me an agent workflow that recovers failed Stripe payments by texting the customer through LoopMessage and pinging our revenue-ops Slack channel in parallel.

Trigger: a Stripe webhook for charge.failed or invoice.payment_failed. The workflow should run once per failure event.

Step 1. From the Stripe event, pull the customer id and call Stripe Retrieve Customer to grab the full customer record, including name, email, phone, and the amount due. Also capture the retry attempt count from the event payload.

Step 2. Enrich the customer with HubSpot Search Contacts using the email from Stripe. From the matching contact, pull plan tier and CSM owner. If there is no HubSpot match, continue and flag this in the Slack alert later.

Step 3. Draft a short, polite recovery iMessage. The text should reference the product or plan they pay for (use the HubSpot plan tier when available, otherwise a generic phrase based on the Stripe product), say their card just failed, and include a payment-update link. Keep it under three sentences, no marketing copy, no emojis.

Step 4. Call LoopMessage Check Contact Status on the customer's phone number to confirm they are subscribed to our audience. If the status is subscribed, call LoopMessage Send Message to deliver the iMessage from our approved sender. If the status is unsubscribed or unknown, skip the text entirely and note the reason for the Slack alert.

Step 5. In parallel with the customer text, post a structured Slack alert to our revenue-ops channel via Send a Message. The Slack message should include the customer's name and email, the amount due, the retry attempt count, the plan tier and CSM owner from HubSpot, a link to the HubSpot contact record, and a one-line status: either 'iMessage sent' or 'iMessage skipped: unsubscribed' or 'iMessage skipped: not in LoopMessage audience' or 'no HubSpot match found'.

Skip rules: never send an iMessage to a contact who is unsubscribed or unknown in LoopMessage. In those cases, still post the Slack alert so the CSM can follow up another way. If HubSpot has no contact, still text the customer (assuming opted in) using Stripe data only, and flag the missing CRM match in Slack.

Make the Slack channel, the LoopMessage sender id, the payment-update link template, and the recovery text wording easy to edit later.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerTurn Mailjet email clicks into ranked HubSpot follow-upsCustomer lifecycle inspector for Loops, Stripe and PostHogiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInFront desk appointment confirmation board for the next 3 days