Chartsy Zapier Triggers: Every Event and Field
The Chartsy app on Zapier has 10 triggers. Each fires once per event and carries a ready-written summary field plus the raw figures, so you can drop one field into a message or map each value separately.
How to read this page#
Field names are shown as Chartsy sends them, e.g. customer_email. In the Zap editor they appear title-cased, as "Customer Email". Amounts are in the account's currency, dates are ISO 8601 in UTC. New here? Start with connecting Chartsy to Zapier.
All triggers#
Subscription CanceledInstant
Fires when: A customer cancels a subscription or schedules it to cancel at the end of the period.
Chartsy sends the cancellation to Zapier the moment your billing provider reports it, so the Zap runs within seconds. It fires on the cancel request, which usually comes before the customer loses access - that is why it includes the MRR at risk and the date access ends.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
customer_namecustomer_email | Who canceled. |
plan_name | The plan they were on. |
mrr_at_riskcurrency | The monthly recurring revenue you lose if they don't come back. |
canceled_at | When they canceled. |
access_ends_at | When their paid access ends. Same as canceled_at for an immediate cancellation. |
cancellation_reason | The reason they gave, when your billing provider records one. |
providercustomer_idsubscription_id | The billing provider and its ids, for links back to Stripe or Paddle. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Alex Smith canceled Growth (49.00 USD/month at risk) - access ends 2026-11-24. Reason: Too expensiveGood to know
- When you test the trigger, Zapier shows your recent real cancellations. If you have had none since the app went live, it shows your latest canceled subscriptions instead.
Use it to
- Create a task to talk to the customer before their access ends. See the template
- Post cancellations to a Slack channel so the team sees churn as it happens.
- Start a win-back email or a CRM deal.
New Paying CustomerPolling
Fires when: Someone pays you for the first time.
Each customer triggers once, on their first payment. Customers who had paid you before (a returning customer on a new subscription) don't trigger it again.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
customer_namecustomer_email | The new customer. |
plan_namemrrcurrency | The plan they chose and the MRR it adds. |
first_payment_amountpaid_at | What they paid and when. |
sourcemediumcampaigncontent | Where the customer came from when they signed up (UTM values or the referrer Chartsy recorded). |
channel | Source and campaign together, e.g. "reddit / launch-week". |
first_touch_channel | The channel of their very first visit. |
signed_up_atsignup_sitelanding_page | When and where they signed up, and the first page they saw. |
providercustomer_idsubscription_id | Billing provider ids. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
New paying customer: Alex Smith (alex@example.com) - Growth, 49.00 USD/month - came from reddit / launch-weekGood to know
- The channel fields are filled only when the customer's signup was recorded by Chartsy signup tracking and matched to the payment. Otherwise they are empty.
Use it to
- Celebrate each new customer in Slack or Discord, with the channel that brought them. See the template
- Send a personal thank-you from Gmail or Outlook. See the template
- Add paying customers to a Brevo list so they get customer emails, not trial emails. See the template
New SignupPolling
Fires when: Someone signs up on a site you track with Chartsy.
Fires for every signup the Chartsy tracking script records, with the email and where the person came from. It needs signup tracking set up on your site; payments are not involved.
Settings
- Tracked Site - Only signups on this site. Leave it blank for all your tracked sites.
Fields
| Field | What it holds |
|---|---|
emailsigned_up_at | Who signed up and when. |
site_name | The tracked site. |
sourcemediumcampaigncontentterm | The UTM values or referrer of the visit that led to the signup. |
channelfirst_touch_channel | Last-touch and first-touch channel. |
referrerlanding_pagesignup_page | The referring URL, the first page they saw and the page they signed up on. |
countrydevice | Where they were and what they used. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
New signup on acme.com: alex@example.com - came from reddit / launch-weekUse it to
- Add signups to Mailchimp or Brevo, tagged by source, for a welcome sequence. See the template
- Post each signup to Slack with its campaign and landing page. See the template
Payment FailedPolling
Fires when: A customer's payment fails.
Each failed charge triggers once. Use it to reach the customer while there is still time before the subscription lapses. Failures from before you switched the Zap on are skipped.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
customer_namecustomer_email | Whose payment failed. |
amountcurrency | The amount that didn't go through. |
plan_name | The plan the payment was for. |
failure_codefailure_reason | The decline code and message, e.g. "card_declined" / "Your card was declined." |
failed_payments_last_30_days | How many payments from this customer failed in the last 30 days. |
failed_at | When it failed. |
subscription_status | The subscription's status now, e.g. past_due. |
providertransaction_idcustomer_idsubscription_id | Billing provider ids. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Alex Smith: payment of 49.00 USD for Growth failed - Your card was declined.Good to know
- Works with Stripe, Paddle, Lemon Squeezy and Creem. Polar and Freemius don't report failed payments to Chartsy, so the trigger never fires for them.
- Paddle doesn't send a decline reason, so failure_reason is empty. Paddle also keeps retrying a failed transaction; if a retry succeeds before Zapier next checks, the failure is never reported.
Use it to
- Email the customer from Gmail or Outlook asking them to update their card. See the template
- Post failed payments to Slack or add a Todoist task to follow up. See the template
- Start a dunning sequence in Brevo. See the template
Payment RecoveredPolling
Fires when: A payment goes through after failing.
The pair to Payment Failed: use it to stop the reminders you started, so nobody keeps emailing a customer who has already paid. For Stripe, Lemon Squeezy and Creem it is a paid charge within 30 days of a failed one; several failures before the success count as one recovery.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
customer_namecustomer_email | Whose payment recovered. |
amountcurrencyplan_name | What was paid and for which plan. |
failed_attempts | How many attempts failed before it went through. |
first_failed_atrecovered_atdays_to_recover | When it first failed, when it was paid and the days in between. |
subscription_status | The subscription's status now, usually active. |
providertransaction_idcustomer_idsubscription_id | Billing provider ids. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Alex Smith: payment of 49.00 USD for Growth went through after 2 failed attemptsGood to know
- Paddle: only transactions retried from 4 November 2026 onward are reported, and first_failed_at is empty because Paddle doesn't give the time of the first failure.
- Not available for Polar or Freemius, for the same reason as Payment Failed.
Use it to
- Tell the team in Slack that the money came in. See the template
- End a Brevo dunning automation. See the template
New At-Risk CustomerPolling
Fires when: A customer pauses their subscription, or has 2 or more failed payments in the current quarter.
Catches customers who are likely to churn but haven't canceled. A paused subscription triggers once; a customer with repeated failed payments triggers once per quarter.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
reason | "paused" or "failed_payments". |
customer_idsubscription_id | The billing provider ids. Customers are identified by id only, with no name or email. |
failed_payments_this_quarter | Set when the reason is failed_payments. |
paused_datedays_paused | Set when the reason is paused. |
account_name | The billing account. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Customer cus_Q1w2e3r4 has 2 failed payments this quarter (Acme (Stripe))Good to know
- To get the customer's email, use the customer id to look them up in your billing provider or CRM in the next step.
Use it to
- Add a task or CRM note to check in with the customer.
- Post a private Slack message to whoever owns retention.
New Daily SnapshotPolling
Fires when: Once a day, after 02:00 UTC, when the previous day's figures are complete.
One item per account per day with yesterday's revenue, MRR, subscribers, churn, refunds and traffic, compared with the day before and the 7-day average. Each day triggers once. Days missed while the Zap was off are not replayed.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
dateaccount_namecurrency | The day and account. |
mrr | MRR at the end of the day. |
revenuerevenue_previous_dayrevenue_trailing_daily_average | Revenue collected that day, the day before and on an average day. |
revenue_change_vs_previous_day_percentrevenue_change_vs_trailing_average_percent | The same comparisons as percentages - handy in a Filter step. |
new_subscriberschurned_customerschurn_rate_percent | Subscriber movements. |
refund_counttotal_refunded | Refunds that day. |
visitsunique_visitorssignupstop_source | Traffic across all your tracked sites. |
warning_countwarnings | Anything Chartsy flagged, e.g. a sync that didn't finish. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Chartsy daily summary for 2026-10-16 (Acme (Stripe))
Revenue: 312.50 USD (+30.1%) vs 7-day average
MRR: 4,250.00 USD
New subscribers: 3 - churned: 0 - refunds: 0
Visits: 1820 - signups: 22Use it to
- Post the morning numbers to Slack or email them to a co-founder. See the template
- Add a Filter step to alert only on a bad day, e.g. revenue down more than 30% on the average.
New Weekly Growth SummaryPolling
Fires when: Every Monday after 02:00 UTC, for the week that just ended (Monday to Sunday).
Last week's visits, signups and new MRR against the week before, broken down by channel: which brought the most of each, which grew or slowed down, and which one to focus on next. The focus pick looks at which channel's signups turned into paying customers over the last 90 days.
Settings
- Channel - How to group traffic: Source (default), Medium, Campaign or Content (post). Campaign and Content need UTM tags on your links.
- Tracked Site - Limit the figures to one site that has the Chartsy tracking script. Leave it blank for all of them.
Fields
| Field | What it holds |
|---|---|
week_startweek_endscope | The week and which sites it covers. |
visitssignupssignup_rate_percent | Last week's totals. |
visits_change_percentsignups_change_percent | Change against the week before. |
new_paying_customersnew_mrr | Customers who first paid last week and the MRR they added. |
most_new_mrr_channelmost_visits_channelmost_signups_channel | The top channel for each. |
fastest_growing_channelslowing_channel | The biggest rise and fall in signups. |
best_signup_rate_channelbest_converting_channel | Best visit-to-signup rate last week, and best signup-to-paid rate over 90 days. |
focus_channelfocus_reason | Where to spend more time next, and why. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Chartsy weekly growth, 2026-10-26 to 2026-11-01 (All sites)
Visits: 3,100 (+12.3%) - Signups: 42 (+16.7%) - New paying customers: 4 (196.00 USD new MRR)
- Most new MRR: producthunt, 98.00 USD from 2 new paying customers
- Most signups: reddit, 14 signups (+9 vs last week)
Focus next: reddit - its signups convert to paying customers best (9.52% over the last 90 days).Good to know
- Needs the Chartsy tracking script on your site. The new MRR figures also need signup tracking, so payments can be matched to channels.
Use it to
- Post the summary to Slack or Microsoft Teams every Monday. See the template
Goal ReachedPolling
Fires when: One of the revenue or growth goals you set in Chartsy is achieved.
Each goal triggers once, when Chartsy marks it achieved. Set goals in the Chartsy dashboard; without any, the trigger never fires.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
titlegoal_type_label | The goal, e.g. "Monthly Recurring Revenue target of 5,000.00". |
target_valuebaseline_value | The target and where you started. |
deadlineachieved_at | When it was due and when you hit it. |
account_namecurrency | The billing account. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Goal reached: Monthly Recurring Revenue target of 5,000.00 (Acme (Stripe))Use it to
- Share the win in your team or community channel.
MRR Milestone ReachedPolling
Fires when: Your MRR passes a round milestone, such as 1,000, 5,000 or 10,000, for the first time.
Each milestone triggers once per account, the first time MRR crosses it. Dipping below and crossing it again doesn't trigger it twice. No setup needed.
Settings
- Account - Which connected billing account to read. Leave it blank if you have only one.
Fields
| Field | What it holds |
|---|---|
milestone | The milestone passed, e.g. 5000. |
mrrcurrency | Your MRR when it was passed. |
account_name | The billing account. |
summary | The event in one or two plain lines, ready for Slack or email. |
Example summary
Acme (Stripe) passed 5,000 USD MRR (now 5,012.40)Use it to
- Post the milestone to Slack or Discord, or draft a build-in-public post.


