Retrieve icon
List icon
Update icon
SlackIncomingWebhook icon
Schedule icon

Automate daily e-commerce reporting by syncing Shopify orders and Stripe balance to Notion and Slack

Automate daily e-commerce reporting with Kestra. Fetch the Stripe balance and Shopify orders, update a Notion page, and post a confirmation to Slack on a schedule.

Categories
Data

Stop checking the Stripe dashboard and the Shopify admin by hand every morning. This blueprint runs a scheduled daily e-commerce report that retrieves your current Stripe account balance, lists the latest Shopify orders, writes both into a shared Notion page, and posts a completion message to Slack. It gives finance, operations, and growth teams a single, repeatable cash-flow and sales snapshot without any manual copy-paste or a heavyweight BI stack.

How it works

A scheduled run kicks off the pipeline and four tasks execute in order:

  1. get_balance (io.kestra.plugin.stripe.balance.Retrieve) calls the Stripe API and returns the current account balance.
  2. list_orders (io.kestra.plugin.shopify.orders.List) pulls the latest orders from the storeDomain Shopify store.
  3. update_notion (io.kestra.plugin.notion.page.Update) overwrites the target Notion pageId with a Daily Update section that embeds {{ outputs.get_balance }} and {{ outputs.list_orders }}.
  4. send_slack_message (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) posts a confirmation to your Slack webhook with the flow and execution identifiers.

The daily trigger (io.kestra.plugin.core.trigger.Schedule) fires on the cron 0 0 * * *, so the whole report is produced once a day with no human in the loop.

What you get

  • A current Stripe balance captured every day at a fixed time.
  • The latest Shopify orders fetched alongside it.
  • A living Notion page that always shows the freshest financial and sales data.
  • A Slack confirmation that the report ran, with the exact execution id for traceability.

Who it's for

  • Finance and RevOps teams tracking daily cash flow.
  • E-commerce operators running a Shopify store on Stripe payments.
  • Founders and growth leads who want a morning snapshot in Notion.
  • Data teams replacing brittle scripts with declarative orchestration.

Why orchestrate this with Kestra

Stripe and Shopify each have their own dashboards, but neither can join their data, write it to Notion, and notify Slack on a single schedule. Kestra coordinates all four systems from one declarative YAML flow. The Schedule trigger replaces cron jobs scattered across machines, automatic retries handle transient API hiccups, and every run is captured with full execution logs and lineage so you can audit exactly what was reported and when. Adding a step or swapping a destination is a few lines of YAML, not a new service.

Prerequisites

  • A Kestra instance (open source or Enterprise).
  • A Stripe account with API access.
  • A Shopify store and an Admin API access token.
  • A Notion integration shared with the target page.
  • A Slack incoming webhook URL.

Secrets

Configure these as Kestra secrets:

  • STRIPE_API_KEY for the Stripe API.
  • SHOPIFY_ACCESS_TOKEN for the Shopify Admin API.
  • NOTION_API_TOKEN for the Notion integration.
  • SLACK_WEBHOOK for the Slack incoming webhook.

Quick start

  1. Add the four secrets above to your Kestra instance.
  2. Set storeDomain to your *.myshopify.com domain and pageId to your Notion page id.
  3. Import this blueprint and run it once manually to confirm the data lands in Notion and Slack.
  4. Leave the daily schedule enabled to get the report every morning.

How to extend

  • Enrich the Notion page with refunds, payouts, or fulfillment status from extra Stripe and Shopify tasks.
  • Compute day-over-day deltas or revenue KPIs before writing to Notion.
  • Branch the Slack message to alert on low balance or order spikes.
  • Fan out to multiple stores by parameterizing storeDomain with inputs.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.