Send Stripe payment intents to Google Chat
Payments that stalled, summarised for the team space each morning. Stripe goes into your data warehouse first, where each attempt is read next to its charge and invoice, and only then reaches Google Chat.
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 payment attempts straight to Chat
A payment intent is the attempt to collect, and its status says where it stopped. What the space needs is which attempts stalled and which invoice they belong to, and that join is made in the warehouse, not copied from the account.
- An intent's status says where it stopped; the invoice is a second table
- Stalled attempts only matter when listed against the customer
- The data analyst controls what a message may say
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.
- Payment intents is one of 14 endpoints; each names its invoice and latest charge
- Authorize with a restricted Stripe API key that has read access
- Open the Stripe connector for your data warehouse below
Step 2: Link Stripe payment attempts to charges and invoices
In your data warehouse the model joins Payment intents, Charges and Invoices on customer, so an attempt that stalled can be read against the invoice it was meant to pay.
- Payment intents name their invoice and latest charge, and are read per customer
- amount_received separates paid in full from partial
- status means the same in the space and in reports
Step 3: Send Stripe reports to Google Chat
Add an incoming webhook in the Chat space (Apps & integrations, Add webhooks), paste its URL into a Google Chat destination in OWOX, and attach a report of the Stripe Data Mart. The message is a Markdown template.
- The message is a card with the subject, the Data Mart name, your text and a link back to the report
- The Payment intents table carries created, status, amount, amount_received
- Tables arrive as monospace blocks, and a long report is split into numbered parts
Step 4: Add a short Stripe analysis under the report in Chat
Write the reading under the table in the template, or let an Insight on the same Data Mart write it. Then add a trigger on the Triggers tab: OWOX runs the Data Mart first and checks the sending condition.
- The reading comes from status and amount_received in the report
- One space can receive several reports, each with its own trigger
- Send always, or only when the result is not empty, so a quiet day stays quiet
Step 5: Reuse Stripe payment attempts beyond Chat
The Data Mart behind your Chat 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 have attempts waiting for action
- Change the payments report once and the next Chat 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.41.0Reuse one Google Sheets or Google Chat key across Destinations
- 0.40.0Connecting a plan from Google Sheets takes fewer guesses
- 0.39.0Reload a year of history in one backfill, not twelve
Why OWOX for Stripe in Chat
A raw feed of payment events is noise in a space. OWOX posts the attempts that need a person, from the same Data Mart finance closes on.
- Attempts tied to invoices. Payment intents join invoices, so a stalled payment names what it was for.
- You own the data. Stripe lands in your own data warehouse, in tables you control.
- Quiet days stay quiet. A send condition posts only when the result is not empty.
- One place to fix. When Stripe changes its API, you update the connector, not your Chat setup.
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.
