> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chartcastr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Streams overview

> Streams deliver real-time webhook events from your data sources to Slack the moment they happen. Configure event types, channels, and formatting.

<Note>
  Streams is the real-time companion to Pulses. Pulses are scheduled — Streams are instant.
</Note>

## What are Streams?

Streams forward events from your connected data sources directly into Slack channels the moment they happen — no Zapier, no n8n, no manual setup required.

Where a **Pulse** delivers a scheduled chart summary (daily revenue, weekly signups), a **Stream** delivers a notification for a single event the instant it occurs (a big order just came in, a refund was processed, a payment failed).

|             | Pulses                            | Streams                    |
| ----------- | --------------------------------- | -------------------------- |
| **Timing**  | Scheduled (daily, weekly, custom) | Real-time, instant         |
| **Content** | Chart image + AI summary          | Event notification         |
| **Purpose** | Track trends over time            | React to individual events |

## Available Sources

<CardGroup cols={3}>
  <Card title="Xero" icon="file-invoice" href="/streams/xero">
    Stream invoices, contacts, and credit notes in real-time from your Xero organisation.

    **Supported events:** New Invoice · Invoice Updated · New Contact · Contact Updated · New Credit Note · Credit Note Updated

    Also see: [Xero Pulses (scheduled charts)](/integrations/sources/xero)
  </Card>

  <Card title="Shopify (Private Beta)" icon="shopify" href="/streams/shopify">
    Stream orders, payments, fulfilments, cancellations, and refunds in real-time from your Shopify store.

    **Supported events:** New Order · Order Paid · Fulfilled · Cancelled · Refund

    Also see: [Shopify Pulses (scheduled charts)](/integrations/sources/shopify)
  </Card>

  <Card title="Meta Ads (Private Beta)" icon="meta" href="/streams/meta-ads">
    Stream lead submissions and ad status events in real-time from your Meta (Facebook/Instagram) ad accounts.

    **Supported events:** New Lead · Ad Issue · Ad Processed

    Also see: [Meta Ads Pulses (scheduled charts)](/integrations/sources/meta-ads)
  </Card>
</CardGroup>

## How Streams Work

<Steps>
  <Step title="Connect a source">
    Connect a supported source (e.g. Shopify) from the [Sources](https://chartcastr.com/admin/sources) page. This authorises Chartcastr to receive webhook events from that source.
  </Step>

  <Step title="Connect Slack">
    Ensure you have a [Slack destination](/integrations/destinations/slack) configured. Streams are delivered to Slack channels.
  </Step>

  <Step title="Configure your streams">
    In [Streams](https://chartcastr.com/admin/streams), choose which event types (topics) route to which Slack channels. You can set up multiple channels receiving different topics — e.g. `#orders` gets all order events, `#finance` only gets refunds and payments.
  </Step>

  <Step title="Events arrive in real-time">
    When an event fires in your source, Chartcastr receives it via webhook and immediately posts a formatted notification to your configured Slack channels.
  </Step>
</Steps>

## Streams as Context for Pulses

One of the most powerful uses of Streams is as **context for your AI-powered Pulses**.

When a large order comes in via a Stream, Chartcastr captures it as a data point. When your weekly revenue Pulse runs the following week, the AI can reference that event:

> *"Revenue spiked on Tuesday — this coincides with a large single-order purchase of \$8,400 from Acme Corp captured on that day."*

This turns your Pulses from simple chart deliveries into genuinely explained reports, grounded in real events from your data.

Context is captured automatically — no manual tagging required.

## Setting Up a Stream

Go to [Streams](https://chartcastr.com/admin/streams) in your admin dashboard.

The **By Channel** view shows:

* Channels already configured with active streams (bold, with topic badges)
* Other channels the bot is joined to but not yet configured (dimmed, with an **Add channel** option)

The **By Source** view shows each event type and which channels it routes to — useful for auditing what goes where.

<Tip>
  Start with a single high-value topic (e.g. **New Order**) routed to one channel before expanding. It is easier to add more streams than to manage noise from too many.
</Tip>
