Payment Received Workflow Trigger in Sparkforge
The Payment Received workflow trigger fires whenever a payment hits the CRM. Filter by source, product, status, or transaction type to automate confirmations, internal alerts, retry flows, and reporting.
The Payment Received trigger is the single hook for every incoming payment in Sparkforge — one-time purchases, subscription charges, invoices, funnel orders. Filter it down to the scenario you want to automate.
What this trigger does
It fires the moment a matching payment lands. From there, you can:
- Send a confirmation email or SMS
- Generate and deliver an invoice
- Update CRM fields or tags
- Notify the team of a sale or a failed transaction
- Branch the workflow on amount, source, or status using If/Else
- Capture payment data into custom fields for reporting
How to add the trigger
- Open or create a workflow.
- Add a workflow trigger and pick Payment Received.
- Click Add filter to narrow what fires it. Add sub-filters for tighter targeting.
Available filters
| Filter | Filter options | Sub-filter |
|---|---|---|
| Payment Source | Invoice, Funnel/Website, Calendar, Global Product | Invoice: Text2Pay link, one-time invoice, recurring template. Funnel: one-step order form, two-step order form, upsell. Calendar: calendar names. Global Product: product names and price tier. |
| Transaction Type | Customer present (first transaction) or customer not present (subscription transaction) | — |
| Payment Status | Success or Failed | — |
Example: to fire only on two-step order form purchases, set Payment Source > is > Funnel/Website, then add Sub-Source > is > two-step order form.
If/Else branching
Once the trigger is set, add If/Else conditions to send different actions down different paths.
| If/Else option | Operator | Branch on |
|---|---|---|
| Product | is, is not | Global product names |
| Funnel/Website | is, is not | Funnel/Website names |
| Calendar | is, is not | Calendar names |
| Source | is, is not | Invoice, Funnel, Website, Calendar |
| Payment Status | is, is not | Success, Failed |
| Amount | =, ≠, >, >=, <, <=, is empty, is not empty | Amount paid |
Custom values exposed by the trigger
Once the trigger fires, every downstream action has access to payment data through custom values. Drop them into SMS, emails, internal notifications, or webhook payloads.
Payment
{{payment.source}}{{payment.currency_symbol}},{{payment.currency_code}}{{payment.sub_total_amount}},{{payment.discount_amount}},{{payment.tax_amount}},{{payment.total_amount}}{{payment.coupon_code}}{{payment.created_on}},{{payment.transaction_id}},{{payment.payment_status}},{{payment.gateway}},{{payment.method}}{{payment.card.last4}},{{payment.card.brand}}
Customer
{{payment.customer.id}},{{payment.customer.name}},{{payment.customer.first_name}},{{payment.customer.last_name}}{{payment.customer.email}},{{payment.customer.phone}}{{payment.customer.address}},{{payment.customer.city}},{{payment.customer.state}},{{payment.customer.country}},{{payment.customer.postal_code}}
Invoice
{{payment.invoice.name}},{{payment.invoice.number}}{{payment.invoice.issue_date}},{{payment.invoice.due_date}}{{payment.invoice.url}},{{payment.invoice.recorded_by}}
Frequently Asked Questions
What's the difference between a customer-present and a customer-not-present transaction?
What does the sub-source filter do?
Can I trigger different workflows for successful and failed payments?
Can I branch on the amount paid?
Was this article helpful?
Thanks for the feedback.