Close Zoho CRM deals automatically when Stripe payments land

By General Input

When a Stripe payment succeeds, find the matching open Zoho CRM deal, mark it closed-won with the real amount, and post a celebration in Slack.

Integrations

  • Stripe
  • Zoho CRM
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Finance

Build an agent workflow that closes a Zoho CRM deal as won and announces it in Slack whenever a Stripe payment succeeds for new business.

Trigger: a Stripe webhook for charge.succeeded (or payment_intent.succeeded). From the webhook payload, read the customer email, the charge amount, the currency, the charge ID, and the metadata. If anything is missing or ambiguous, call Stripe Retrieve Charge with the charge ID to confirm currency, amount, customer, and metadata.

Renewal filter: before doing anything else, check the charge metadata and any related invoice fields. If the charge is a renewal or recurring invoice (for example, billing_reason like subscription_cycle, an invoice with subscription set, or an explicit metadata flag like type=renewal), stop and do nothing. This workflow is only for new business wins.

Find the contact and the deal in Zoho CRM. Use Search Records on the Contacts module to locate the contact by email. Then use Search Records on the Deals module to find that contact's open deals (any stage that is not Closed Won or Closed Lost). If there is more than one open deal, prefer the deal whose Amount most closely matches the Stripe charge amount in the same currency. Briefly explain the choice in the agent's reasoning so the rep can follow it.

Update the matched deal with Zoho CRM Update Specific Record. Set Stage to "Closed Won", Closing_Date to today, and Amount to the actual paid figure from Stripe if it differs from the existing deal amount.

Announce the win in Slack with Slack Bot Send a Message to a configured wins channel. Write a short, celebratory, rep-facing message that includes: the deal owner's name (the rep), the customer name, the deal value (formatted with currency), and a one-line snippet pulled from the deal description for context. Keep it to two or three lines, tasteful emoji is fine.

Fallback when no open deal is found: do not silently drop the event. Use Zoho CRM Create Note on the contact with a short body like "Payment received from Stripe, no open deal found" plus the Stripe charge ID, amount, and currency. Do not post to the Slack wins channel in this case, because there is no deal to celebrate.

Configurable knobs to expose: the Slack wins channel, the tone and template of the celebration message, the renewal/recurring skip rule, and the tie-breaker the agent uses when a contact has multiple open deals.

Related prompts

Explore more prompts
Let support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonCustomer lifecycle inspector for Loops, Stripe and PostHogLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client account