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

# Creating reports

> Build a structured report that runs on a schedule and delivers consistent metrics every time.

## Prerequisites

Before creating a report, make sure you have:

* At least one [connector](https://docs.getinteract.com/org-settings/connectors/overview.md) set up in **Settings → Connectors**
* A clear idea of which metric or data pattern you want to monitor

## Step 1: Choose a report type

**1. Go to Reports**

In the left sidebar, click **Reports** and then **Create report**.

**2. Select a report type**

Choose the type that fits your use case:

> [accordion] Campaign Tracking
>
> For monitoring standard paid media metrics (impressions, clicks, spend, conversions, ROAS) across campaigns over time.

> [accordion] BigQuery Monitor
>
> For running a custom SQL query and presenting the results in a structured table. Use this for custom KPIs or data quality checks.

> [accordion] Event Monitor
>
> For tracking specific user events and detecting spikes, drops, or anomalies.

## Step 2: Configure the report

Configuration options vary by report type.

### Campaign Tracking

1. **Select your connector** — choose which BigQuery connector to query
2. **Map your tables** — tell the report which table contains campaign data (e.g. `adwords_performance`)
3. **Select metrics** — choose which columns to include (spend, impressions, clicks, conversions, etc.)
4. **Set date range** — choose a rolling window (e.g. last 7 days, last 30 days) or a fixed period
5. **Add filters** (optional) — filter by campaign name, channel, or other dimensions

### BigQuery Monitor

1. **Select your connector** — choose which BigQuery connector to query

2. **Write your SQL query** — enter the query you want to run on each execution

   ```sql theme={null}
   SELECT
     campaign_id,
     SUM(spend) AS total_spend,
     SUM(conversions) AS total_conversions,
     SAFE_DIVIDE(SUM(spend), SUM(conversions)) AS cpa
   FROM `your_project.your_dataset.campaign_performance`
   WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
   GROUP BY campaign_id
   ORDER BY total_spend DESC
   ```

3. **Set column labels** (optional) — rename technical column names to human-readable labels

### Event Monitor

1. **Select your connector** — choose which BigQuery connector to query
2. **Select your events table** — choose the table that contains event data
3. **Choose the event to monitor** — filter by `event_name` or another column
4. **Set the comparison window** — define the period to compare against (e.g. same day last week)
5. **Configure anomaly thresholds** — set percentage change thresholds that should trigger an alert

## Step 3: Schedule the report

**1. Enable schedule**

Toggle **Enable schedule** on.

**2. Set the cron expression**

Enter a cron expression for when the report should run. Examples:

| Schedule | Cron |
| - | - |
| Every weekday at 8:00 AM | `0 8 * * 1-5` |
| Every Monday at 9:00 AM | `0 9 * * 1` |
| First day of the month at 7:00 AM | `0 7 1 * *` |

> [!TIP]
>
> Use [crontab.guru](https://crontab.guru) if you're not familiar with cron syntax.

## Step 4: Add notifications (optional)

If you want to receive an alert when the report completes, attach a notification channel:

1. In the report settings, scroll to **Notifications**
2. Select one or more channels (email, Slack, Teams)
3. Choose which events should trigger a notification (e.g. successful run, failed run, anomaly detected)

[Set up notification channels →](https://docs.getinteract.com/org-settings/notifications/setting-up-channels.md)

## Step 5: Save and run

Click **Save report**. To test it immediately, click **Run now** from the report detail page.

The first run may take a few seconds. Once complete, you'll see the results in the report's **Run history** tab.

## Editing a report

You can edit any aspect of a report at any time — including the query, schedule, and notification settings. Edits take effect on the next scheduled run.

## Report history

Every run is saved in the report's **Run history**. You can view results from any past run, compare them side by side, and re-run any run manually if needed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.