# Integrations

Everything Punchline connects to: where data comes from, where it goes, and the tools you can ask about it. Owners and admins set these up in **Site settings** or **Alerts**; each links to its own page.

## Data in

| Integration | What it does | Set up in |
|---|---|---|
| [Next.js](https://www.punchlineanalytics.com/docs/install-nextjs) | Sees every request at the edge: agents, crawlers and people, including requests that never run JavaScript | Your code: one proxy file |
| [Vercel middleware](https://www.punchlineanalytics.com/docs/install-vercel) | The same, for static, Vite or Astro sites on Vercel | Your project: one file |
| [Google Tag Manager](https://www.punchlineanalytics.com/docs/gtm) | The browser snippet, installed from Tag Manager, plus your GA4 events by the same names | Your Tag Manager container |
| [Cloudflare Worker](https://www.punchlineanalytics.com/docs/install-cloudflare) | The same, in front of Webflow, Framer, Shopify, WordPress or any site on Cloudflare | Cloudflare |
| [Browser snippet](https://www.punchlineanalytics.com/docs/install-snippet) | People and browser-based agents, for builders where you can't run code at the edge | One line of HTML |
| [Server events](https://www.punchlineanalytics.com/docs/events-goals) | Signups, purchases and anything else from your backend, tied to the visit they came from | `POST /v1/events` |
| [Google Analytics 4](https://www.punchlineanalytics.com/docs/ga4) | Compare GA4's numbers with Punchline's, and import up to 14 months of GA4 history | Site settings |
| [HubSpot and Salesforce](https://www.punchlineanalytics.com/docs/crm) | Deals and opportunities, to see the revenue behind companies that researched you | Site settings |

## Data out

| Integration | What it does | Set up in |
|---|---|---|
| [Email and Slack](https://www.punchlineanalytics.com/docs/alerts#where-they-go) | A daily digest when an alert fires | Alerts |
| [Webhooks](https://www.punchlineanalytics.com/docs/webhooks) | The same digest as signed JSON, for your CRM, Zapier, Make or your own code | Alerts |
| [HubSpot and Salesforce](https://www.punchlineanalytics.com/docs/crm) | Account signals written onto the company as a note or task | Site settings |
| [Google Ads and Meta](https://www.punchlineanalytics.com/docs/ads) | People's conversions uploaded against the ad click that brought them (opt in) | Site settings |
| [BigQuery and Snowflake](https://www.punchlineanalytics.com/docs/warehouse) | Four tables written every day | Site settings |
| [Exports](https://www.punchlineanalytics.com/docs/api#exports) | CSV or Parquet files of any query, up to 100,000 rows | API |
| [Edge markdown](https://www.punchlineanalytics.com/docs/edge-markdown) | Serve AI assistants a markdown version of your pages | Your edge install |
| [Handoff links](https://www.punchlineanalytics.com/docs/handoffs) | Give agents a link to pass to their person, and see when it's opened | API |

## Ask and build

| Integration | What it does |
|---|---|
| [MCP](https://www.punchlineanalytics.com/docs/mcp) | Ask Claude, ChatGPT, Cursor or any MCP client about your traffic; let it set up alerts and goals if you allow it ([all tools](https://www.punchlineanalytics.com/docs/mcp-tools)) |
| [REST API](https://www.punchlineanalytics.com/docs/api) | Every number in the dashboard, from scripts, BI tools and your own agents ([reference](https://www.punchlineanalytics.com/docs/api-reference), [cookbook](https://www.punchlineanalytics.com/docs/api-queries)) |
| [TypeScript SDK](https://www.punchlineanalytics.com/docs/sdk) | A typed client for the API |
| [Ask Punchline](https://www.punchlineanalytics.com/docs/ask) | Plain-language questions in the dashboard, with the queries behind each answer |

## What every integration has in common

- **Privacy rules travel with the data.** Anything that leaves your dashboard (API, MCP, exports, warehouse tables, webhooks) withholds groups of fewer than 5 people and never includes a person's session. See [Privacy and security](https://www.punchlineanalytics.com/docs/privacy).
- **Credentials are never shown again.** CRM and ad-platform tokens and the Snowflake private key are stored encrypted. Slack and webhook URLs are stored where only Punchline's server can read them, and aren't shown in full again. Where a service allows it, Punchline uses access you grant on your side instead (BigQuery dataset sharing, a Snowflake key pair it generates), so you never hand over a password.
- **Outbound requests only go to public addresses.** Webhook and audit URLs are checked against private network ranges before every request.
- **Failures show where you set things up.** A CRM, ads or warehouse connection that stops working shows its last error in Site settings, and the next daily run picks up where it left off.
- **Only owners and admins** can connect or change integrations. Viewers can see reports, not settings ([roles](https://www.punchlineanalytics.com/docs/team)).
