> ## 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.

# Meta Ads streams

> Stream real-time Meta Ads lead form submissions and ad status changes to Slack. Set up Facebook and Instagram ad event alerts with Chartcastr.

<Warning>
  **Private Beta** — Meta Ads Streams is currently in private beta. [Contact us](mailto:support@chartcastr.com) to request access.
</Warning>

<Info>
  **Paid Feature** — Requires a connected [Meta Ads source](/integrations/sources/meta-ads) on any paid plan (Starter, Pro, Enterprise). [See pricing](https://chartcastr.com/pricing).
</Info>

## Overview

Once your Meta Ads account is connected, Chartcastr receives webhook events from Meta in real-time and forwards them to your configured Slack channels instantly — no polling, no delay.

This complements your [Meta Ads Pulses](/integrations/sources/meta-ads) (scheduled ad performance charts) by giving you immediate visibility into individual events as they happen.

|                  | Meta Ads Pulses                                      | Meta Ads Streams                                |
| ---------------- | ---------------------------------------------------- | ----------------------------------------------- |
| **What you get** | Ad spend, ROAS, and performance charts on a schedule | Instant notification per event                  |
| **When**         | Daily, weekly, or a custom cadence                   | The moment the event fires                      |
| **AI summary**   | Yes — campaign analysis + context                    | No (single event notification)                  |
| **Best for**     | Weekly performance reviews, spend tracking           | Lead capture alerts, ad rejection notifications |

## Supported Events

| Event            | Trigger                                                              |
| ---------------- | -------------------------------------------------------------------- |
| **New Lead**     | Someone submits a lead form on your Facebook or Instagram ad         |
| **Ad Issue**     | A campaign, ad set, or ad is rejected or has delivery issues         |
| **Ad Processed** | A campaign, ad set, or ad finishes processing after creation or edit |

You can route any combination of these to any Slack channel. For example:

* `#sales` → New Lead
* `#ads-ops` → Ad Issue + Ad Processed
* `#marketing` → all events

## What Gets Sent to Slack

Each Slack notification includes:

* **Event type and emoji** — e.g. `:clipboard: New Lead Submitted`
* **Key details** — Lead ID, form ID, object name, and type
* **Timestamp** of when the event occurred
* **Footer** — `via Chartcastr Streams · Meta Ads`

### Example notifications

**New lead submitted:**

```
📋 New Lead Submitted
Lead: 123456789
Form: 987654321
Ad: 111222333
Time: 8 Mar 2026, 10:15 am
via Chartcastr Streams · Meta Ads
```

**Ad rejected/has issues:**

```
⚠️ Campaign Has Issues
Campaign: Summer Sale 2026
via Chartcastr Streams · Meta Ads
```

**Ad finished processing:**

```
✅ Ad Set Processed
Ad Set: Lookalike — AU 25-44
via Chartcastr Streams · Meta Ads
```

## Setup

<Steps>
  <Step title="Connect your Meta Ads account">
    Go to [Sources → Meta Ads](/integrations/sources/meta-ads) and complete the Facebook OAuth flow. Chartcastr requests read access to your ad accounts and leads — no write permissions.
  </Step>

  <Step title="Open Streams">
    Navigate to [Streams](https://chartcastr.com/admin/streams) in your dashboard. If Meta Ads is connected and you have Slack set up, you'll see Meta Ads in the stream source list.
  </Step>

  <Step title="Configure topics per channel">
    Click any Slack channel to choose which Meta Ads events it receives. Route leads to your sales channel, ad issues to your ads ops channel, or send everything to one place.
  </Step>
</Steps>

## Why Stream Leads to Slack?

Lead forms on Meta ads capture intent in the moment — but that intent fades fast. The longer a lead sits before someone follows up, the lower the conversion rate.

With Meta Ads Streams, the moment someone fills out your lead form, a notification lands in your team's Slack channel. Your sales team can follow up in minutes instead of hours or days.

This is especially valuable for:

* **Local service businesses** where speed-to-lead directly impacts close rate
* **B2B teams** running lead gen campaigns where high-intent prospects expect a fast response
* **Event promotions** where registrations need real-time tracking

## Why Stream Ad Issues?

Meta regularly reviews ads and can reject them for policy violations, or flag delivery issues that throttle your spend. Without real-time alerts, you might not notice a paused campaign until hours or days later — burning budget on underperforming alternatives or missing delivery entirely.

Ad Issue streams notify your team the moment something goes wrong, so you can fix creative, adjust targeting, or appeal a rejection before it impacts your numbers.

## Deduplication

Chartcastr deduplicates Meta webhook events using a key derived from the ad account ID, event timestamp, and change field. If Meta retries a delivery, the duplicate event is silently dropped — your Slack channels only receive each event once.

## Streams as Context for Meta Ads Pulses

When a notable Meta Ads event arrives via a Stream (e.g. a burst of leads from a new campaign), Chartcastr stores it as context attached to that moment in time.

When your next [Meta Ads Pulse](/integrations/sources/meta-ads) delivers your weekly performance chart, the AI can surface that event in its analysis:

> *"Lead volume spiked on Thursday — this aligns with 12 new lead form submissions captured via Streams that afternoon, coinciding with the launch of the Summer Sale campaign."*

This is automatic — no manual notes required. The stream event is captured, timestamped, and made available to the AI when it runs your next Pulse.

<Tip>
  For the best context capture, make sure you have [AI summaries](/analysis/in-pulses) enabled on your Meta Ads Pulse connection. Without AI, stream context is stored but not surfaced in delivery.
</Tip>
