How To Set Up Stripe to Salesforce Integration: a How To Guide

Why The Stripe Salesforce Integration Matters (and How to Get it Right)

If you're a SaaS company using Stripe to manage subscriptions and Salesforce as your CRM, there's a good chance you're leaving revenue visibility, and revenue itself, on the table because of disconnected platforms.

In this article, we'll break down the biggest benefits of connecting Stripe to Salesforce, the common paths we've seen across our SaaS and PLG clients, and the best practices to avoid bad data and broken workflows.

How SaaS Teams Use Stripe + Salesforce Integration

When we talk to SaaS teams about the Stripe and Salesforce integration, the conversation always goes beyond syncing transactions. It's about visibility. Subscription data, payment events, and account activity shouldn't live in silos and shouldn't require hours of manual work to reconcile. Especially not when revenue growth depends on catching signals early and acting fast.

Integrating Stripe and Salesforce can also enhance marketing automation by enabling more targeted customer engagement and follow-up based on payment and subscription data.

Here's how we've helped SaaS and PLG companies put this to work:

Renewal Workflows That Run Themselves

No one wants to realize a renewal was missed after it's already lapsed. By syncing Stripe subscription data into Salesforce, you can automatically create renewal Opps ahead of time, automatically create follow-up tasks, and surface accounts with upcoming expirations or failed payments.

We recentlyset this up for a SaaS client with high ACV contracts and a lean CS team. Renewal Opps now get created 90 days before the contract ends, pre-filled with the current subscription terms. They've seen a 20% drop in churn just by staying ahead of the curve.

Real ARR and MRR, Not Just Forecasts

It's one thing to know what's in the pipeline. It's another to track the revenue that's been collected. Connecting Stripe to Salesforce allows RevOps and Finance to calculate ARR and MRR using actual billing data, not estimates.

You can track expansions, downgrades, and churn in real time. Syncing detailed line items from Stripe invoices into Salesforce enables granular revenue analysis and reporting. Stripe subscriptions feed into Salesforce so reports stay accurate, clean, and audit-ready.

Billing Visibility for CS and Support

Customer Success shouldn't be blindsided by a failed payment. By surfacing payment status, invoice history, and delinquency flags inside Salesforce, your CS and Support teams can prioritize the right accounts (and avoid awkward conversations). Configuring the guest user profile in Salesforce ensures that support teams and even anonymous users can securely view and update payment-related information as needed.

We've seen teams layer Stripe data into the Account view in Salesforce so reps know at a glance whether a customer is in good standing or if there's a billing issue that needs to be escalated before the next QBR.

Catching Expansion Signals Early

Stripe is full of growth signals. You just need to get them in front of the right people.

When customers upgrade plans, add seats, or expand usage, those events can trigger automated workflows in Salesforce: from notifying the AE, to creating an expansion Opp, to sending alerts to the CS team. Automated workflows can also generate and send a payment link to customers when an expansion event is detected, making it easy for them to complete their purchase and streamlining the upgrade process. 

If you're doing product-led growth, this is essential. One client we worked with now flags any billing event over a set threshold and routes it straight to Sales with all the context attached.

Better Decisions from Shared Data

Stripe handles the billing. Salesforce runs the GTM engine. When both sides are connected, you stop guessing.

Forecasts become more accurate. Attribution models finally include revenue, not just pipeline. And GTM teams can test things like pricing changes or new product tiers and actually measure the impact across the full funnel. This kind of alignment only works when your systems are talking to each other and your teams are looking at the same data. The Stripe to Salesforce connection extends the functionality of both Stripe and Salesforce, enabling teams to make data-driven decisions based on unified revenue and customer data.

How to configure the Native Stripe + Salesforce Integration

The fastest way to get started is using Stripe’s official connector for Salesforce, which is set up as an integration builder tool that allows using Apex and Flows to configure the integration to your org's needs.

Included in the package are prebuilt custom Apex classes that allow calling out directly to the Stripe API, which can be used to update customers, manage subscriptions, send invoices or checkout links, and more.

It also includes a suite of webhooks to sync Stripe data into Salesforce, which creates records on the Stripe Events custom object that logs details for any event (such as customer updates, invoices sent, or checkout sessions completed) you have enabled. Flows and triggers can then be used to translate that data onto your Accounts, Contacts and other objects.

Below is a step-by-step guide to get it running smoothly, plus a few pro tips we’ve picked up along the way.

Installation steps: Stripe Connector for Salesforce

1. Install the Connector Package

  1. Go to AppExchange and install Stripe Connector for Salesforce Platform (or the Billing/CPQ variant depending on your use case)
  2. Choose Install for All Users, and approve third-party access.
  3. Verify installation at Setup → Installed Packages.

Tip: Always install in a sandbox first, with the connection set up to a Stripe test environment.

2. Run the Setup Wizard

  1. Open App Launcher → Stripe Connector for Salesforce Platform.
  2. Click Get Started and authorize Stripe, then enter your Salesforce login details
  3. Enter your publishable & restricted API keys from the Stripe settings (you must be an admin to access these), and hit Add Account.
  4. Enable Events & Sync Cleanup and set retention limits for event. We use 20,000 as the threshold so the logs are not deleted too quickly if you need to troubleshoot errors.
  5. Select your Stripe API version, click Install Package, then Finish.

Tip: For the setup in your production org, it is best practice to use a dedicated integration user.

3. Configure Webhook Events

  1. Open App Launcher → Stripe Connector for Salesforce Platform, and click on your company's Stripe accounts name
  2. Open the All Webhook Events tab and select the object you want to sync
  3. Select the specific events to sync. If you are using Connected Accounts in stripe you can enable that here, but for most orgs you will only need to enable it for your account. The most common webhooks we turn on for our clients are:
    1. Customer.created and Customer.updated
    2. Invoice.created, Invoice.paid, Invoice.updated
    3. Customer.subscription.created, Customer.subscription.updated
    4. Checkout.session.completed
  4. If you need additional events (such as Quotes, Transactions, Refunds, Charges, or others) you can enable those as well - there is no limit to the number enabled, but we recommend only using the objects you need to access in flows to avoid creating unnecessary records in your org
  5. There is no risk to enabling or disabling webhooks at any time. This feature is only a one way sync of event log data into Salesforce, so it won't affect any in progress transactions.
  6. We recommend keeping the Stripe Event object restricted to only administrators, as the event records could contain payment details or customer information that users normally would not be able to see (payment methods will come in as encrypted)

4. Map Event data onto other objects

Once events sync, the connector starts logging them in the Stripe Event object as each event occurs. From there, you can use either Flows or Apex triggers to update other records. Examples of this can include

  • Updating Contacts and Accounts with the Stripe Customer ID and Stripe Subscription ID values to track your customer ID's in both systems from one record
  • Use Subscription.Created and Subscription.Updated events to trigger updates to the Contract object - this can be set up to lookup specific product records using the Stripe product ID property, to allow relating the updates to a specific Asset
  • Use Checkout.session.completed records to update the Contract status to show when a customer has paid, and to send an alert if a customer has transactions that fail so that your agents can follow up

5. Use Stripe Actions to make external callouts

The other advantage of this package is the prebuilt actions that can be incorporated into Salesforce flows or actions, and used to trigger specific actions in Stripe. Examples of this include:

  • Creating a button on the Opportunity that launches a screen flow, which prompts the agent to confirm the customers contact details. Once they hit finish, it will use the apex action to send a secure checkout session link directly to the primary Contacts email
  • Create a screen flow on the Account page to allow agents to confirm and update customer details, such as addresses and contact information. If they see anything incorrect, they can quickly make an edit, which will then trigger an update in the flow to copy that change to both the Salesforce Account and the Stripe Customer records
  • Create a button on the Contract record to allow an agent to input pause dates, and build a scheduled flow to call the Stripe action once those dates are reached. That flow will then send a callout to Stripe to pause the customers subscription on the entered date automatically.

You can also use the integration to help manage subscriptions and invoices. This is done by using the actions to call the Stripe API's to perform updates directly on the customer's account. Be aware that the changes will immediately apply, so it is critical that all billing details, products and pricing are accurate. Some examples of this can include

  • Setting up a button on a Contract or Order record to collect all active products on that customer, and use those to send a callout to Stripe to create a Subscription and products
  • Use a similar action on invoices to send a customer a specific one-time or recurring invoice for a purchase. These purchases can also include scheduled product groupings if you need to support ramped deals or renewal uplifts after a certain duration.
  • You can also collect data in both directions, which will allow reporting on things like past due Invoices, product schedule dates, or Subscription ARR all within Salesforce without having to move between both systems.

Stripe Event Examples

  • Example of what an incoming event looks like for a new customer, which brings in basic details such as their contact information and address. In this scenario, the email is used to lookup to the contact and account and relate them all together, as well as to create a new opportunity to show that this customer was created in Stripe. It will also link the customer ID, which is used to relate invoices and checkout sessions back to the same account when they are created.

  • Example of an invoice paid event. This event uses the customer ID to make sure the invoice is applied to the same account. After that we have a flow set up to bring in the invoice details (including amounts, discounts, quantity, and dates) into the opportunity. These events also can show custom properties, as well as historical changes, such as if prices change from one invoice to the next.
  • The example below is an outline of what can happen on an invoice event creation. Here we first take the event and pull out the relevant data (including a conversion class to parse a UNIX timestamp, as well as the customer details and Stripe ID's) and use those to update the Account. It is also looking up the current active Opportunity on this Account to use later on.he next steps uses the product ID from the event to find the matching Salesforce pricebook entry and create a line item on the Opportunity (which will include the product pricing/discounts, start/end dates, and quantity). Then it updates the Contract (if it is an existing customer that has been invoiced before), or creates a new Contract (if it is this customer's first invoice). This keeps both objects up to date with the correct product information.

  • The next steps uses the product ID from the event to find the matching Salesforce pricebook entry and create a line item on the Opportunity (which will include the product pricing/discounts, start/end dates, and quantity). Then it updates the Contract (if it is an existing customer that has been invoiced before), or creates a new Contract (if it is this customer's first invoice). This keeps both objects up to date with the correct product information.

  • The next steps uses the product ID from the event to find the matching Salesforce pricebook entry and create a line item on the Opportunity (which will include the product pricing/discounts, start/end dates, and quantity). Then it updates the Contract (if it is an existing customer that has been invoiced before), or creates a new Contract (if it is this customer's first invoice). This keeps both objects up to date with the correct product information.

The above is an example of a screen flow on an Account record that is used to manage Stripe callouts. This version supports two functions, to either directly create a Customer based on the Account details, or to create a Subscription and Invoices based on Contact details. This will enable your finance teams to work directly out of Salesforce without having to manually copy data between both systems.

The other advantage here is to use these actions combined with the previously described functionality to sync event data back to Salesforce on a successful Subscription creation - this is an important way to make sure your data stays in sync at all times. This will also give you options to track on subscription and invoice status on account records, which makes it easy to track ARR and past due invoices all from one place.

🔍 Candybox Tips for Stripe to Salesforce Integration

Best Practices for a Clean Setup

A Salesforce Stripe integration can give you full visibility into customer revenue, but only if you set it up with intention. Here are a few non-negotiables for every SaaS:

  • Pick a single source of truth for revenue.
    Decide whether ARR, MRR, and payment status live in Salesforce or Stripe. Then build the integration accordingly. Don't let the same metric get calculated in two places with slightly different logic.
  • Map subscriptions to Opportunities.
    Whether you use native Opportunity records or a custom object for subscriptions, make sure each Stripe subscription is linked to the right Account and/or Opp in Salesforce. This unlocks proper reporting across billing cycles.
  • Track payment status at the Account level.
    Don’t bury billing info. Surface the most recent invoice status or delinquency risk directly on the Account page so CS and Sales don’t have to dig.
  • Set up alerts for critical events.
    Failed payment? Subscription downgraded? Missed renewal? Use Flows or platform events to trigger follow-up tasks or Slack alerts so nothing falls through the cracks.
  • Be deliberate about where billing data lives.
    For simple cases, syncing into the Account or Opportunity record works fine. For more advanced needs, create a custom object like Subscription__c and relate it to both Account and Opportunity for full reporting flexibility.

Conclusion: Unlocking GTM Efficiency with Stripe + Salesforce

At Candybox, we don’t look at Stripe to Salesforce as just another integration. When done right, it becomes a foundational layer for how your go-to-market teams operate.

If you’re working with disconnected systems today, this is one of the most high-leverage changes you can make to your revenue stack.

Need help figuring it out? We’ve done this before, and we’d be happy to guide you through the setup that's right for you. Book a free consultation call here.

FAQs

Do I need middleware for a Stripe to Salesforce integration, or is the native connector enough?

In most cases, the native Stripe Connector for Salesforce is more than enough to sync subscriptions, invoices, customers, and payment events. It supports API callouts, webhooks, and automation through Flows and Apex. Middleware tools like Zapier or Workato are only needed for extremely complex, multi-system workflows outside of Salesforce and Stripe.

Will enabling Stripe webhooks disrupt payments or active subscriptions?

No. Enabling Stripe webhooks in Salesforce does not affect billing, charges, or customer subscriptions. Webhooks only pass event data—like invoice updates or subscription changes—into Salesforce. Your Stripe transactions continue to run normally, making it safe to test or adjust webhook settings anytime.

What Stripe events should I enable for the Salesforce integration?

Most SaaS teams enable core subscription and billing events, including: Customer.created / Customer.updated Invoice.created, Invoice.paid, Invoice.updated Customer.subscription.created / updated Checkout.session.completed These events provide the data needed for renewals, ARR reporting, invoice tracking, and subscription visibility inside Salesforce.

Can Salesforce trigger actions back into Stripe using the integration?

Yes. The Stripe Connector includes prebuilt actions that let Salesforce call Stripe APIs directly. You can use them in Flows or buttons to: create Stripe Checkout Sessions update Stripe Customer details create or pause subscriptions generate one-time or recurring invoices This allows GTM teams to manage billing-related actions without leaving Salesforce.

What Stripe data should I sync into Salesforce for accurate ARR and MRR reporting?

Sync only the data that drives actionable revenue insights: subscription status, invoice events, customer details, and product line items. This allows Salesforce to calculate real ARR and MRR based on actual billing data, without overloading your org with unnecessary Stripe objects like all charges or payment methods.

Smarter systems. Smoother processes. Real growth.

The right RevOps support helps you move faster. Cleaner handoffs, better data, and a GTM engine that actually scales.