# graph8 for Marketing Operations

> graph8 field guide for Marketing Operations. Live URLs, real surfaces, screenshots from a public-data showcase tenant.

Source: https://docs.graph8.com/roles/mops/

*A field guide for MOps. Live URLs, real surfaces. Screenshots captured from a showcase tenant with public-company data only.*

## The five things to use today

### 01. Event pipeline — Connections, Functions, Streams, Destinations, Live Events

*Jitsu-style architecture. Sources (Streams) → Transforms (Functions) → Destinations. 11 destination types shipped including warehouses + ad pixels + analytics + CRM-side triggers.*

**Open these**

- `app.graph8.com/connections/list` — full source→destination routing
- `/connections/functions` — JS event-transform code editor
- `/connections/streams` → click a site → Setup Instructions — web snippet
- `/connections/destinations` — 11 destination types
- `/connections/live-events` — real-time event debug stream

![Connections list with sources graph8.com, heymech-graph8, calendamation.com routed to Forms Sync Trigger, Campaign Visitor Trigger, Warehouse, Identify, Tailor, OpenReplay, Twitter Ad Conversion](../../../../assets/roles/mops/1-connections-list.webp)

***Fig 1.1** — `/connections/list`. Each row = source → (optional Function transform) → destination edge.*

![Live Events page showing real-time event stream with Incoming Events/API Destinations/Functions Logs/Batches sub-tabs](../../../../assets/roles/mops/2-functions.webp)

***Fig 1.2** — `/connections/live-events`. Real-time debug. *Incoming Events* · *API Destinations &amp; Functions Logs* · *Batches &amp; Data Warehouse Events*.*

![Destinations list with Identify (13 sites), Warehouse (14 sites), Chat (10), Form Tracker (11), Forms Sync Trigger (12), Campaign Visitor Trigger (13), Tailor, OpenReplay, Twitter Ad Conversion, X Conversion Event (Not connected), LinkedIn Tag (1 site)](../../../../assets/roles/mops/3-streams-snippet.webp)

***Fig 1.3** — `/connections/destinations`. 11 destination types with per-destination site counts.*

> **Tip: Try this now**
> **MOps move.** Open `/connections/live-events` when you push a tracking change. Watch events stream in within seconds — instant validation. Then check *Functions Logs* sub-tab if transforms aren't behaving as expected.

### 02. JavaScript Functions — write your own enrichment

*Real JS code editor with Test Env Vars + Sample Event + Run button. Two live functions today: *Filter Eda Submission Form Trigger* and *Campaign Visitor Event Filter*. Drop in your own to enrich, route, or filter events.*

**Open it at**

- `app.graph8.com/connections/functions`

![Functions list showing 2 active functions: Filter Eda Submission Form Trigger and Campaign Visitor Event Filter](../../../../assets/roles/mops/4-live-events.webp)

***Fig 2.1** — Functions list. Each opens a code editor with test panel + sample event. JS goes from idea to deployed without filing a ticket.*

> **Tip: Try this now**
> **MOps move.** Common transform recipes: (1) Parse UTMs and add as event fields. (2) Filter out internal IP ranges. (3) Hash email before sending to Meta CAPI. (4) Compute lead score from event payload. Build once, attach to any source.

### 03. Web snippet install — one tag, every event

*The script ships as one async tag pointed at `events.flow.graph8.com` with your stream's write-key. Drop in `&lt;head&gt;`, get pageviews + form submits + custom events automatically.*

**Open it at**

- `/connections/streams` → click your site → Setup Instructions sub-tab

![Stream detail showing Setup Instructions tab with HTML tracking snippet script async src=https://events.flow.graph8.com/p.js data-write-key=...](../../../../assets/roles/mops/5-destinations.webp)

***Fig 3.1** — One `&lt;script&gt;` tag. Drop in `&lt;head&gt;` on every page of your site. **Heads-up:** `?tab=setup` URL param isn't recognized — drill in via the site row.*

> **Tip: Try this now**
> **MOps move.** Add the snippet to staging first. Open `/connections/live-events`. Visit your staging site. You should see your pageview within 2 seconds. Validate before pushing to prod.

### 04. CRM connections + form routing

*5 CRMs supported (HubSpot · Salesforce · Zoho · SugarCRM · Stripe) with per-field bidirectional mapping. Plus 19 forms with Target List routing — each form fill auto-routes to the configured list.*

**Open these**

- `/studio/settings?tab=integrations` — CRM + payment connectors
- `/forms` — 19 forms with Target List config

![Studio Settings Integrations showing HubSpot Connected (expires May 18 2026), Salesforce, Zoho CRM, SugarCRM, Stripe Connected](../../../../assets/roles/mops/6-integrations.webp)

***Fig 4.1** — `?tab=integrations`. **HubSpot Connected** · **Stripe Connected**. Open HubSpot gear → Fields tab for the field mapping schema.*

![Forms list with 19 forms showing Form ID, Page URL, Total Submissions, Latest Submission, Target List columns; top entries undefined 78, go-data-progressive-form 78, apply-form 17](../../../../assets/roles/mops/7-forms.webp)

***Fig 4.2** — `/forms`. 19 forms — top performers *go-data-progressive-form 78 subs · apply-form 17 · demo-with-vekkii 12.* **Target List column empty** for most rows = form-to-list routing not configured. MOps fix.*

> **Tip: Try this now**
> **MOps move.** The Target List on each form is the seam between marketing (form fill) and sales (sequence enrollment). Configure these so every form submission lands in the right SDR sequence within minutes. Then watch `/analytics/marketing` → Bridge Funnel for "Added to Outbound" climbing.

### 05. Attribution + Intent Keywords + Copilot

*Intent keyword config (currently empty for graph8 — set up first). Attribution analytics (also empty until outbound runs). Copilot honest about the attribution gap.*

**Open these**

- `/keywords` — Intent Keyword config
- `/analytics/attribution` — Sender + Acquisition Breakdown
- `/analytics/conversions` — Goal Completions (Form Submission + Meeting Booked)
- Copilot — Cmd+Shift+K

![Intent Keywords page with empty table, columns Keyword/Contacts/Companies/Date Added/Last Updated/Sync/Actions, Add Keyword button](../../../../assets/roles/mops/8-keywords.webp)

***Fig 5.1** — `/keywords`. **0 keywords configured.** Add your first 10 so the intent dashboard surfaces companies talking about your wedge.*

![Analytics Attribution showing 'No sender data yet — no outbound sends in the last 30 days. Once the rewriter starts writing cb_outbound_sends rows, sender performance will appear' with Sender performance / Acquisition breakdown sub-tabs](../../../../assets/roles/mops/9-attribution.webp)

***Fig 5.2** — `/analytics/attribution`. Empty. Workaround until populated: `/analytics/conversions` for goal-attribution.*
![Copilot response to 'Show me my conversion rate by traffic source this month' explaining it lacks website analytics/traffic source attribution and offering alternatives: Campaign reply rates, Deal conversion by stage, Pipeline by source if deals have CRM source attribution](../../../../assets/roles/mops/10-copilot-mops.webp)

***Fig 5.3** — Live copilot response. Honest: *"Lacks website analytics / traffic-source attribution data."* Offers alternatives (campaign reply rates, deal conversion by stage). **This is the MOps gap to close**: wire web events to deal source attribution.*

> **Tip: Try this now**
> **MOps move.** The MOps roadmap: (1) configure intent keywords today. (2) wire form→list routing on the 19 forms. (3) once outbound runs, validate `/analytics/attribution` populates. (4) build the web→deal source attribution loop (Function transform writing utm_source to the contact record).

## URL cheat-sheet

| To do this | Go here |
| --- | --- |
| Event routing (source → destination) | `/connections/list` |
| JS event transforms | `/connections/functions` |
| Web snippet install | `/connections/streams` → click site |
| 11 destination types | `/connections/destinations` |
| Real-time event debug | `/connections/live-events` |
| Dynamic page personalization | `/connections/tailor` |
| CRM + Stripe connectors | `/studio/settings?tab=integrations` |
| Forms + Target List routing | `/forms` |
| Intent Keywords | `/keywords` |
| Attribution analytics | `/analytics/attribution` |
| Goal-based conversions | `/analytics/conversions` |
| Marketing Bridge Funnel | `/analytics/marketing` |

## Heads-up — known MOps gaps

> **Caution:**
> **1. Form Target List column is empty for most forms.** 19 forms shipping submissions but routing-to-sequence not configured. Biggest MOps quick-win.
>
>  **2. Intent keywords empty.** 0 configured at `/keywords`. Set up your first 10.
>
>  **3. Attribution analytics empty.** Will populate when outbound sends start logging rows. Use `/analytics/conversions` in the meantime.
>
>  **4. No native web→deal attribution.** Copilot is honest: web traffic source data is not joined to deal records today. Build a Function transform that writes `utm_source`/`utm_campaign` to the contact record so deal-conversion-by-source becomes queryable.
>
>  **5. `?tab=setup` doesn't work on `/connections/streams`.** Drill in by clicking a site row.

---

<small>Generated 2026-05-20 against `app.graph8.com` (org `your org`). Surface state verified live</small>
