Ask about anything in DailyStory Documentation

Type a question in your own words below. Answers are written from our published articles and cite the ones they came from.

Recently updated

    ↑↓ select · ↵ open · esc close
    Dashboard
    Edit Article Logout

    Stripe Integration


    Stripe is a suite of APIs powering online payment processing and commerce solutions for internet businesses of all sizes. By integrating Stripe with DailyStory, your Stripe customers, subscriptions, invoices and one-time Payment Link and Checkout purchases flow into DailyStory, where you can use them to send emails, text messages, push notifications and more.

    How to integrate Stripe and DailyStory

    Stripe integration with DailyStory requires several steps.

    1. Create a Stripe restricted API key

    Login to your Stripe account and find your Stripe API key.

    • Open Developers and select API keys
    • Click Create restricted key:
    1. Set permissions for Restricted Key

    Grant Read access to the following resources. DailyStory never writes to Stripe, so no write access is needed.

    ResourceUsed for
    EventsFinding customers, invoices and checkout sessions that changed since the last sync
    CustomersContact details and the Stripe customer id
    SubscriptionsActive, trial, paused, past due and cancelled subscription fields
    InvoicesInvoice and subscription purchases and their line items
    Checkout SessionsOne-time purchases made through Payment Links or Stripe Checkout, which don't create invoices
    Products and PricesProduct names and price ids on purchases
    PaymentIntentsThe charge description on the last paid invoice

    Below is an example of what the Read permission looks like for Customers:

    Upon saving you will be presented with the API key. Copy this API key as you'll need it to finish the setup.

    Alternatively you can use your "Secret Key" but this is not recommended.

    1. Enable Stripe integration in DailyStory

    Navigate to Account Settings > Integrations, and select Stripe.

    Enter the restricted API key you created in step 1 and save.

    Congratulations. Stripe integration is now configured! DailyStory starts with an initial import of up to three years of Stripe customers, invoices and one-time Checkout purchases. After that, each sync picks up new changes in Stripe automatically.

    Recommended

    The initial import does not trigger automations. Historical orders update contact fields and purchase history, but customers won't receive abandoned cart or order messages about past orders. Automations start with orders that change after the initial import.

    Stripe Sync

    Once Stripe integration is enabled, DailyStory:

    • Automatically syncs customer data from Stripe: DailyStory automatically syncs your customer data from Stripe into DailyStory. This includes standard customer details, such as name, email address and phone number, as well as Stripe-specific data, such as purchase history, last order status, last order date and subscriptions.
    • Enables Stripe-specific customer segments: Build customer segments based on data from Stripe, such as contacts who bought a specific product within a date range. These segments automatically stay up-to-date as data in Stripe changes.
    • Enables Stripe-specific automations: Automations, such as abandoned cart, order declined and order fulfilled, are triggered by changes to Stripe orders.

    Automation triggers

    Stripe order changes trigger the following automations. Each trigger fires once per invoice or checkout, so a customer with several orders gets one trigger for each.

    TriggerWhen it fires
    Abandoned cartAn invoice is finalized but not yet paid (status open)
    Order declinedAn invoice is voided
    Order fulfilledAn invoice is paid, or a one-time Payment Link or Checkout payment completes

    One-time payments made through Stripe Payment Links or hosted Stripe Checkout don't create a Stripe invoice, and often don't create a Stripe customer. DailyStory syncs these purchases directly from the completed checkout:

    • The contact is matched or created using the email address or phone number entered at checkout. If the contact has no name yet, the name from checkout is added.
    • The purchase is added to the contact's purchase history and updates the last order fields.
    • Payments made with delayed payment methods, such as ACH bank transfers, are synced once the payment succeeds.
    • Subscription checkouts, and Payment Links with invoice creation turned on, create a Stripe invoice. These are synced from the invoice, so they're never counted twice.

    Fields DailyStory syncs with Stripe

    When Stripe integration is enabled, DailyStory automatically syncs data from Stripe.

    Recommended

    Stripe sync is one-directional. And data from Stripe will always be considered the "source of truth."

    Standard Fields

    DailyStory will sync the following standard fields from Stripe:

    • First name
    • Last name
    • Email address
    • Mobile phone number
    • Address
    • City
    • State
    • Zip code
    • Country

    Stripe-specific Fields

    In addition to standard fields, the following Stripe-specific fields are synced. These fields are used for personalizing content, running automations or building segments, such as customers who haven't ordered in 6 months.

    FieldDescription
    IdThe customer id in Stripe. Accessible in personalization as {{profile.stripe_customer_id}}
    Purchase HistoryEvery item the contact has purchased, with the item name, price and purchase date. Shown on the contact profile and available for segmentation, for example contacts who bought a specific item between two dates for more than a given amount.
    Purchased ProductsThe products on the contact's most recent paid order. Available for segmentation and accessible in personalization as {{profile.stripe_order_products}}
    Last Order StatusThe status of the contact's most recent invoice. Values include draft, open, paid, void and uncollectible. Payment Link and Checkout purchases are recorded as paid. Available for segmentation and accessible in personalization as {{profile.stripe_order_status}}
    Last Order ValueThe total of the most recent paid order. Available for segmentation and accessible in personalization as {{profile.stripe_order_last_value}}
    Last Order DateThe date of the most recent paid order. Available for segmentation and accessible in personalization as {{profile.stripe_order_last_date}}
    Last Order CouponThe coupon applied to the most recent paid invoice. Available for segmentation and accessible in personalization as {{profile.stripe_last_order_coupon}}
    Last Order ChargeThe charge description on the most recent paid invoice. Available for segmentation and accessible in personalization as {{profile.stripe_last_order_charge}}
    Price IdsThe Stripe price ids on the most recent paid order. Available for segmentation and accessible in personalization as {{profile.stripe_price_ids}}
    Active SubscriptionsActive subscriptions. Available for segmentation and accessible in personalization as {{profile.stripe_subscription_active}}
    Cancelled SubscriptionsCancelled subscriptions. Available for segmentation and accessible in personalization as {{profile.stripe_subscription_cancelled}}
    Paused SubscriptionsPaused subscriptions. Available for segmentation and accessible in personalization as {{profile.stripe_subscription_paused}}
    Trial SubscriptionsTrial subscriptions. Available for segmentation and accessible in personalization as {{profile.stripe_subscription_trial}}
    Past Due SubscriptionsPast due subscriptions. Available for segmentation and accessible in personalization as {{profile.stripe_subscription_past_due}}
    Recommended

    If you need additional fields imported from Stripe that are not listed here, please contact us for assistance.

    Loyalty and Rewards

    The following activities from Stripe generate loyalty points:

    • New Customer - when a new account signs up
    • Place an Order - for each dollar spent

    How helpful was this article?

    👍 or 👎

    Related Articles

    Markdown Version