Soul & Soda
Add Soul & Soda to your Home Screen Open the Hub like an app from your phone.

All clients

Agency accounts

Performance at a glance

Source Meta-reported
0 selected
Loading data

Creative that's earning its keep

Ad Spend CTR Conv CPA ROAS Status

Campaigns

Campaign Spend Impr. Clicks CTR CPC Leads Cost/Lead Schedules Cost/Sched Purchases Cost/Purch ROAS Status

Ad Sets grouped by audience targeting

Rolled up from ad-level data — one row per ad set.
Ad sets · ranked by spend

Audiences where your spend is landing

Brand Strategy · Reference Library

Brand Hub

The practical home for the approved brand. Keep logos, style guides, colours, fonts, templates, photography, video, and source files together so every project starts consistently.

Offers, Audiences, and Authentic Positioning now live as their own Brand Strategy sections. This Hub is the working brand kit used to create everything else.

Saved
01
What we sell

Offers

Define what people can buy, book, or join: the promise, inclusions, price, proof, delivery, and point of difference. Clear offers give every Strategy and Campaign something concrete to promote.

Loading…
03
Why we win

Authentic Positioning

Now we plant the flag. Looking at the competitor map above — where are we genuinely different, and where are we measurably better? Authenticity is the foundation; positioning is the angle we point it.

Positioning assets to collect
0 / 5
04
Who we win with

Audiences

The specific people we're building this for. Not "everyone" — the real humans whose lives change when they find your brand. Define up to three.

Audience assets to collect
0 / 5
07
The approved brand kit

Brand Hub

Everything needed to represent the brand consistently. Link the approved source files here so the latest logos, style rules, templates, imagery, and production assets are easy to find.

Brand assets · existing
0 / 12
Brand assets · to create
0 / 10
08
Reference

Business Info

Who we're working with and how to reach you. Kept at the bottom because it's reference — the strategy work above is what actually moves the brand.

0% complete

Projects what's getting done

Campaign Calendar what ships when

Mon
Tue
Wed
Thu
Fri
Sat
Sun

Goals start with why

Before the product, the brand, any of it — this comes down to why. Get honest about why this matters, what you want, and what you're willing to change. The right path shows itself.

Saved

Competitors who you're up against

Track who you're competing with, what they do well, and where you're different. Paste a URL — we'll grab the favicon.

Saved

Inspiration Library everything that could shape the brand

One massive visual library for websites, landing pages, video, ads, social content, settings, photography, email, brand assets, products, and new ideas.

Saved

Brand Modelling from attention to revenue

Model the commercial path before committing budget. Change any assumption to see the full funnel, unit economics, break-even point, and required investment update instantly.

Saved
Benchmarks are illustrative planning starting points, not promises. Replace them with the account's real data as it becomes available.

Channels how you reach them

Delete 95% of the busywork. Pick which channels are on the table, then write the plan for each one you tick. Skip what doesn't apply.

Saved

Customer Journey stages + live metrics

Map the journey from first impression to advocacy. Bind a real metric to each stage — the number is live, and conversion between stages is auto-calculated.

Saved
Data: 30D · change on Dashboard

Strategies & campaigns from direction to delivery

The Brand Strategy holds the complete foundation and direction. Add an ongoing Strategy or a time-bound Campaign to put it into action.

Saved
Brand strategy
The source of truth everything rolls up into
0 campaigns

Build the brand strategy with visual steps. Add an icon below, drag it into place, then use the pencil or double-click any name to change it. Campaigns follow this strategy without becoming map nodes.

Choose the strategy step this should lead to
100%

Whiteboard journey maps & workflows

Drag from the toolbar to add a box. Drag boxes to move. Click the arrow handle on a box's edge, then click another box to connect. Double-click a box to rename. Delete key removes selected.

100%
Saved

Campaigns execution

Market → Method → Message → Measure. Every campaign starts with who it is for, decides how and where it shows up, gets the words right, and measures the result in the Hub.

Loading…

Files & Notes links, docs, every asset

Loading…

Attribution setup build links and capture every journey

Paid campaign templates

Each platform has its own macro syntax. Paste ONCE per ad (or ad set) into the platform's URL Parameters field — the platform auto-fills the values for every click, forever.

Ads Manager → edit an ad (or ad set) → Tracking → URL parameters.

Uses Meta's own macros — {{campaign.name}}, {{adset.name}}, {{ad.name}} auto-substitute at click time. The first-party tracking code also captures fbclid for CRM match-back.

First-party tracking code

Paste this once into the site-wide <head>. It records the first source that introduced a person, their latest source before conversion, landing page, referrer, click IDs and an anonymous visitor ID. It also fills matching hidden fields in GHL, Shopify, Webflow and other forms.

Preparing tracking code...

The code stores attribution on the business's own website and passes it into the business's own forms. Use SoulAndSodaTracking.consent(false) when a visitor rejects analytics cookies, and consent(true) after they accept.

CRM and form fields

Sub-account → Settings → Custom Fields → New Custom Field. Create these as Text fields on the Contact object:

br_visitor_id br_first_source br_first_medium br_first_campaign br_first_content br_first_landing_page br_latest_source br_latest_medium br_latest_campaign br_latest_content br_latest_landing_page br_referrer fbclid gclid ttclid li_fat_id

Then in your GHL form's Field mapping, connect each hidden form input to the matching custom field so the value ends up on the contact record.

Test the journey
  1. Build a test URL below, then open it in a private window.
  2. Submit the form and open the contact in the CRM.
  3. Confirm the first-touch and latest-touch fields are populated. Later visits should update latest touch without overwriting first touch.
Conversion events

The installed code automatically records page views and form submissions in the browser, and makes custom events available to the site's data layer. Use SoulAndSodaTracking.track('purchase', { value: 120, currency: 'AUD', order_id: '1234' }) on a thank-you page. The same visitor and attribution data can then be forwarded from Shopify, GHL or the server-side CAPI connection.

UTM link builder
Recent URLs
Build a one-off URL to see it here.

Tracking what's firing, what's missing

Meta CAPI — closed-loop attribution

When a deal closes in GHL, we fire a server-side conversion event to Meta with the stored fbclid + hashed email. Meta then attributes the sale to the exact ad — Ads Manager ROAS becomes real, and Meta's optimiser learns from won deals (not just form fills).

Landing-page script health check

Paste a landing-page URL to check if the Soul & Soda capture script is installed and firing. We fetch the page and look for the marker cookie the script sets, plus verify the form fields it targets.

What each signal buys you
Meta Pixel — browser-side event tracking. Shows in Ads Manager, drives lookalikes + retargeting. Blocked by ~30% of traffic (iOS 14+, adblockers).
Meta CAPI — server-side event tracking. Bypasses adblockers, matches ~85–95% of conversions (vs. ~55% pixel-only). Needed for accurate CPA in 2026.
GHL contact capture — attribution glue: UTMs on the click → hidden form field → contact record → sales report. Without this, closed deals have no ad source.
First-party tracking code — keeps consented first and latest touch attribution for 180 days, recognises organic and referral traffic, and auto-fills matching form fields.
Google Analytics — cross-channel session data. Useful but not the source of truth — GHL + Meta + Google Ads own their own numbers.

Updates from your account team

Leave blank for today, or set a past date to backdate
Conversation
—
Loading conversation…

Customer Journeys

Ecommerce Funnel
Lead-gen Funnel

Touchpoints

Every Conversion Event

Onboarding everything you need from a new client

A repeatable checklist per client. Track what's requested, received, and done. Progress saves per client — one glance to see what's still blocking.

0 / 0 complete
Saved

Connectors

Meta Ads API — —
Auto-connected via your Soul & Soda agency Meta access. Pick which ad account belongs to this client. New client? Add it to the System User's assets in Business Manager first.
"Sync all" pulls spend, impressions, clicks, ROAS, conversions per ad + per campaign + daily metrics, plus real creative images — direct from Meta Graph API.
Advanced — use a custom token for this client
Override the agency token for this client only (e.g., a client-owned token, or a User token instead of the System User). Leave blank to keep using Soul & Soda's agency access.
GoHighLevel — —
Per-client integration. Use the guide below to grab a Private Integration Token (PIT) and the client's Location ID, then paste both in.
How to connect GHL — step by step
  1. Log in to this client's GHL sub-account (not the agency view — switch clients if needed).
  2. In the left sidebar click Settings (the gear icon, near the bottom).
  3. In the Settings sidebar click Private Integrations. If you don't see it, ask the agency admin — it may be disabled at the agency level under Agency Settings → Private Integrations.
  4. Click Create New Integration. Name it something like Soul & Soda Reporting.
  5. Tick these read-only scopes (search each one in the scope picker):
    contacts.readonly opportunities.readonly calendars.readonly calendars/events.readonly conversations.readonly locations.readonly forms.readonly
  6. Click Create. GHL will show the token once — it starts with pit-. Copy it immediately and paste it into the token field below.
  7. Grab the Location ID from the browser URL while you're still on the Settings page — it's the string between /location/ and /settings:
    app.gohighlevel.com/v2/location/abc123xyz/settings
  8. Paste both values below. Click Test first — a green "connected" pill means it works. Then click Save.
  9. Once saved, GHL metrics (pipeline value, appointments, cost per won deal, tag revenue, show rate) appear in the metric picker within a minute or so on the next sync.
Direct integrations — —
Private API tokens per client. Data lands in the dashboard within seconds of connecting.
Metric mapping
Map a metric like Schedule to whichever Meta pixel event your client actually fires. Useful when bookings come through as lead or complete_registration instead of the native schedule event.

Settings

Display Name
Shown in the welcome block on the sidebar.
Reset Layout
Restore the default dashboard layout. This will replace any custom widgets you've added.