Post Stripe subscriptions to Microsoft Teams
Who is about to cancel, who is past due, who just started: in the revenue team's Teams channel every Monday. Stripe goes into your data warehouse first, where subscriptions are read next to invoices and charges, and only then reaches Teams.
Stripe Endpoints
14 Stripe endpoints you can import. Each lands in its own table in your data warehouse.
Balance transactions
Every movement of money through the Stripe balance: charges, refunds, disputes, fees, payouts, adjustments.
16 fieldsTime seriesCharges
One row per charge attempt: amount, outcome, card details, who paid and which invoice or payment intent it belongs to.
33 fieldsTime seriesCustomers
Every customer object: identity, billing country, delinquency and balance.
17 fieldsDisputes
One row per dispute (chargeback) with its status and evidence deadline.
14 fieldsTime seriesEvents
The audit trail: every change Stripe recorded (invoice.paid, customer.subscription.updated, charge.refunded, …) with the id of the object it concerns.
11 fieldsTime seriesInvoice line items
Every line on every invoice: what was billed, for which price and product, for which period.
19 fieldsInvoices
One row per invoice with amounts, status and period.
31 fieldsTime seriesPayment intents
One row per payment attempt lifecycle: how much was asked for, how much was received, and where it stands.
22 fieldsTime seriesPayouts
One row per transfer from the Stripe balance to the bank account: amount, arrival date, status.
18 fieldsTime seriesPrices
Every price (plan) of every product, active or not, with amount, currency and billing interval.
17 fieldsProducts
The catalogue: every product, active or not.
13 fieldsRefunds
One row per refund: how much was returned on which charge, why, and the balance transaction that reversed the money.
13 fieldsTime seriesSubscription items
The lines of every subscription: which price, how many units.
14 fieldsSubscriptions
One row per subscription in any status (status=all), full refresh every run so cancellations and past-due states are current.
23 fields
Why Stripe does not post subscriptions straight to Teams
A subscription record says what it is today. Whether it is about to churn depends on the invoices that failed and the charges that were declined, and those are joined in a warehouse before the Teams channel reads anything.
- A subscription shows its status, not the invoices behind it
- A Teams channel reaches people who need the definition with the figure
- The data analyst joins subscriptions, invoices and charges on customer and controls the message
Step 1: Load Stripe into your data warehouse first
Create a Data Mart with Stripe as the source and choose where the data lands. The Stripe connector is a custom connector built in OWOX Data Marts, and the data goes into any popular data warehouse.
- Subscriptions is one of 14 endpoints; items live in their own table
- Authorize with a restricted Stripe API key that has read access
- Open the Stripe connector for your data warehouse below
Step 2: Link Stripe subscriptions to invoices and charges
In your data warehouse the model joins Subscriptions, Invoices and Charges on customer, so a past due status can be traced to the invoice that failed and the charge that was declined.
- Invoices name their subscription and charge, and all three are read per customer
- cancel_at_period_end flags churn before the period ends
- One definition of active serves the channel and the close
Step 3: Post Stripe reports to a Teams channel
Create a Microsoft Teams destination in OWOX with the email address of the channel, taken from the channel menu in Teams, then add a report to the published Stripe Data Mart. Write the message in Markdown and check it in Preview.
- Every Teams channel can receive email, and OWOX sends the report to that address
- Type / to place the Subscriptions table: customer, status, current_period_end, cancel_at_period_end
- Create & Run posts the first report straight away
Step 4: Put a short Stripe analysis under the table in Teams
Add two or three lines beneath the table in the same message. Pick a send condition on the report, and open the Triggers tab to set the day and time of the run.
- The lines rest on status and cancel_at_period_end from the table above them
- Figures come from a fresh run of the Data Mart before each message
- Send always, only when empty or only when not empty: chosen per report
Step 5: Reuse Stripe subscription status
The Data Mart behind your Teams message also works in OWOX, where your assistant for data can read it. Ask about any report, then get it in Google Sheets or Excel in one click.
- Ask which customers cancel at the end of this period
- Change the report once and the next Teams message reads the change
- 0.41.0Dates from Google Sheets arrive as dates, not text
- 0.41.0Rotating a connector key is one change: Sources share reusable Credentials
- 0.40.0Connecting a plan from Google Sheets takes fewer guesses
- 0.39.0Reload a year of history in one backfill, not twelve
- 0.39.0Long Facebook Ads imports no longer fail on a corrupted response
Why OWOX for Stripe in Teams
A Stripe subscription list reaches whoever opens the dashboard. OWOX puts the changes in front of the revenue team, with their cause.
- Churn with its cause. Subscriptions join invoices and charges, so past due is explained.
- You own the data. Stripe lands in your own data warehouse, in tables you control, before anything reaches Teams.
- Revenue sees it first. The message lands where retention is discussed.
- One place to fix. When Stripe's API changes, you publish one new connector version, so the Teams setup is left alone.
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.
