Connect Stripe POS
Connect your gym's Stripe account to track revenue and match payments to contacts.
Connecting your gym's Stripe account is what closes the attribution loop. Without Stripe, Adsu can tell you which ads generate leads — but with Stripe connected, Adsu can tell you which ads generate revenue. Every charge, subscription payment, and membership renewal is synced and matched back to the original ad that brought the customer in.
Two Different Stripe Accounts
Adsu uses two separate Stripe integrations that serve completely different purposes. The one you are connecting here is your gym's own Stripe account (point-of-sale) — the account where your members pay for memberships, personal training, drop-ins, and other services. This is different from Adsu's billing Stripe, which handles your Adsu subscription. These two never interact.
What Gets Synced
- Charges — Every successful payment processed through your gym's Stripe account, including one-time charges and recurring subscription payments. Synced hourly with a rolling 7-day lookback.
- Subscriptions — Active recurring subscriptions are tracked to compute Monthly Recurring Revenue (MRR) and identify active members. Subscription status changes (active, canceled, past_due) are monitored.
- Customer data — Stripe customer emails and names are used by the matching engine to link payments to existing contacts in your CRM.
Prerequisites
- A Stripe account that processes payments for your gym. This is the account your members pay into.
- Owner or admin access to the Stripe account.
- The Stripe account must be fully activated (not in test mode) if you want to see real transaction data.
Connection Steps
Open the Connections page
In your Adsu dashboard, navigate to Settings > Connections. Find the Stripe POS card and click Connect.
Authorize via Stripe Connect OAuth
You will be redirected to Stripe's authorization page. Adsu uses the Stripe Connect OAuth flow to securely connect to your account. Sign in to your Stripe account if prompted, then review the permissions.
Click Authorize to grant Adsu read access to your charges, subscriptions, and customer data. You will be redirected back to Adsu.
Verify the connection
After redirecting back, the Stripe POS card on the Connections page should show a green "Connected" status along with your Stripe account ID.
Adsu immediately begins a 90-day historical backfill of your transactions so revenue data appears in the dashboard right away.
Check your transactions
Navigate to Dashboard > Transactions to see your Stripe charges flowing in. Each transaction shows the amount, date, customer info, and — once the matching engine runs — the attributed ad source.
Auto-Advance on Payment
When a Stripe charge is successfully matched to a contact, Adsu automatically advances that contact to the "closed" funnel stage. If the contact has an active recurring subscription, they are advanced to "active_member". This happens automatically — no manual pipeline moves required.
These auto-advances are "advance-only," meaning a contact at "active_member" will never be demoted back to "closed" by a one-time charge. Stages only move forward.
How Stripe Data Flows Through Adsu
- Transaction sync (hourly) — Adsu queries your connected Stripe account for successful charges from the past 7 days. Transactions are upserted, so re-syncing the same charge is safe and idempotent.
- Real-time webhooks — In addition to the hourly sync, Stripe sends webhook events for new charges and subscription status changes. These are processed immediately for faster updates.
- Matching — The matching engine links Stripe transactions to existing contacts using customer email. When a Stripe customer's email matches a contact in your CRM, the transaction is attributed to that contact.
- Attribution — Once a transaction is linked to a contact, Adsu looks up all of that contact's ad touchpoints and distributes revenue credit across the ads that influenced the conversion (using your selected attribution model).
- Revenue metrics — A nightly job computes lifetime value (LTV) for each contact and updates membership status flags. This powers the revenue KPIs on your dashboard.
Revenue Attribution in Practice
Here is a concrete example of how Stripe data completes the attribution picture:
- Sarah clicks your Facebook ad and fills out a form on your website. Adsu captures the fbclid and creates a contact.
- Your sales team follows up in GoHighLevel, books an appointment, and Sarah comes in for a trial.
- Sarah signs up for a monthly membership and pays $149 through your Stripe terminal or payment link.
- Adsu matches the Stripe charge (via Sarah's email) to the contact, auto-advances her to "closed," and attributes the $149 to the original Facebook campaign.
- Each month Sarah's subscription renews, the additional revenue continues to be attributed to the ad that brought her in, building an accurate lifetime value.
Subscription Tracking
Beyond one-time charges, Adsu tracks recurring Stripe subscriptions to provide deeper revenue insights:
- MRR (Monthly Recurring Revenue) — Calculated from active subscriptions linked to attributed contacts. Tells you how much recurring revenue each ad campaign is generating.
- Churn tracking — When a subscription is canceled or goes past due, Adsu records the churn event. This helps identify which acquisition channels produce members that stick around.
- Active member flag — Contacts with active subscriptions are flagged as current members, enabling you to filter your contact list by membership status.
Disconnecting
To disconnect your Stripe account, go to Settings > Connections and click Disconnect on the Stripe POS card. This revokes Adsu's access to your Stripe account via OAuth deauthorization. Existing transaction data in Adsu is preserved, but no new transactions will be synced.
Reconnecting is safe — all syncs use upserts, so no duplicate transactions will be created.
Troubleshooting
- No transactions appearing — Check the Sync page for errors. The initial backfill may take a few minutes for accounts with high transaction volumes. Also verify that the Stripe account has successful charges (test mode charges are not synced in production).
- Transactions not matching to contacts — The matching engine relies on email addresses. Ensure your Stripe customers have email addresses that match the contacts in your GHL CRM. Check the Dashboard > Attribution Review page for flagged matches that need manual review.
- Revenue not attributed to ads — This requires the full chain: contact must have ad touchpoints (from tracking script or lead forms), the matching engine must have linked them, and a transaction must be matched. Check the contact's journey page to see if touchpoints and transactions are both present.
- Connection shows "Disconnected" unexpectedly — This can happen if someone revokes access from the Stripe dashboard side. Go to Connections and click Connect to re-authorize.