Source Intelligence Mirylo
Client · —
Job type
01 Website activity trend
02 Source trend
03 All sources
04 First touch → Last touch · the journey in
05 Page actions
06 Page actions over time
07 Website visits · hour × weekday
08 All pages · stacked by source
01 Lead source trend
02 Funnel KPI trend
03 Rate KPI trend
04 Cost per lead trend
05 Channel economics
01 Sales funnel
02 Estimate Nurturing
03 Estimator performance
04 Estimator detail
01 Campaign intelligence

Spend comes from exact cached GHL Ad Publishing campaign rows. Lead, booking, deal, and won counts come from CRM records tied to captured attribution campaign tails.

01 Channel & source performance
Sort By
02 Contacts by channel · stacked by source
03 Visitors by source · stacked by page
04 All sources
05 First touch → Last touch · the journey in
01 Daily phone demand
02 Calls & SMS by source
03 Call records
04 When people call · hour × weekday
05 When call contacts book · hour × weekday
01 Campaign intelligence
02 Spend efficiency by source
Settings
Form Builder
Brand Colours, typography, width
Weight
Weight
Form Content Title, button, consent text
Compliance Privacy & terms links
Attribution & CRM Mapping
Tracker keyGHL field key

Quiz

Metric Rules
CRM Configuration Catalog

Not synced yet.

CRM Field Mapping

Dashboard metrics read these exact contact fields for this GHL location.

Dashboard Stages
Qualified
Deals
Booked
Quote Sent
Won
Lost
Spam
Sales Funnel
Sellers
New Leads
Booked Appointment
Estimate Sent
Estimate Nurturing
Sold

Integrations

Spend ledger

Phone Numbers

Import GHL numbers, then map each source to the correct tracking number.

Source Imported number Tel
Sources

Rules that resolve visitor source before phone swap or form submit.

Category Label Key Priority Aliases Referrers UTM source UTM medium UTM campaign
Business Profile
GHL Connection

Re-authorize when GHL API access is missing or permissions changed.

Checking connection…
Location ID
Status
Scopes
Diagnostics
Recent OAuth callbacks
Branches

Use branches when one GHL location serves multiple websites or service areas.

Names change only the label. Existing embeds, ids, and mappings stay intact.
Website Connections

Each branch has its own exact domain allowlist and reCAPTCHA credentials. The tracker asset is shared; its embed carries the branch ID.

01 How each action was attributed
02 Tracked event log
Setup guide

Launch MirylOS in the right order

Follow these steps once for each sub-account. Every button opens the exact place you need.

01

Check the GHL connection

Open Connection and confirm that the status is Connected. If it is not connected, or permissions changed, select Re-authorize GHL and approve this sub-account.

02

Create Attribution custom fields

Checks Contact custom fields first, creates only missing fields, verifies the result, and updates Field Mapping with the actual GHL keys. It includes Google click IDs: gclid, gbraid, wbraid, Google campaign/ad group/keyword fields, and Meta campaign/adset/ad/form fields. It is safe to run again.

Paid channel rule: Google Ads data is written only to Google fields such as campaignid, adgroupid, gclid, gbraid, and wbraid. Meta Ads data is written only to fb_* fields such as fb_campaign_id, fb_campaign_name, fb_adset_name, fb_adset_id, fb_ads_name, and fb_ads_id. Do not map Meta fields to generic ad_id, adset_id, adset_name, or ad_name.

Not checked yet
One manual GHL step: GHL does not currently allow apps to create a Contact custom-field folder through its public API. In GHL, create the folder Attribution once and move the verified fields into it. The button above handles the fields and prevents duplicates.
CRM essentials

Create operational fields

Sales structure

Create and map a pipeline

03

Build the forms

Complete allowed domains, brand colors, content, consent, Privacy and Terms links, required fields, and Field Mapping. Configure Form 1 first. Open Form 2 and use Duplicate as a starting point, then add its extra fields. Keep Google Ads and Meta Ads campaign, adset, ad, form, and keyword fields mapped so attribution tails are preserved for forms and website calls.

1. Form 12. Duplicate to Form 23. Review mapping4. Save changes
04

Enable reCAPTCHA

Create Google reCAPTCHA v3 keys for every website domain. In Form, enable reCAPTCHA, paste the Site key and Secret key, then save. Test one real submission on the published website.

05

Install the website scripts

Place the Phone tracker script in the website Head so it loads on every page. Add either the Form 1 or Form 2 code where the form must appear. Use the live preview before publishing, then test the website in an incognito window.

06

Review Sources

Each Source is a matching rule used for attribution, forms, phone swaps, and reporting. Review its Label, Key, aliases, referrers, and UTM values. UTM campaign is optional; leave it blank when the source and medium should match every campaign. To add a source, select Add source, use a unique lowercase key, add the referring domain or UTM values, and save.

07

Buy and map tracking numbers

In GHL, buy one phone number for each source you want to measure. Return to Phone Numbers, select Import numbers, assign each Imported number to its correct Source, run Auto fill Tel, and save. Never reuse one tracking number for two sources.

08

Replace public numbers and campaign links

Update the phone number on every external profile, ad, directory, print asset, vehicle, and campaign. Confirm the destination number matches the Imported number mapped to that Source.

Attention: update the website link too Google Business Profile (Google MyBusiness), Google LSA, BBB, Nextdoor, and HomeAdvisor must use a tagged website URL for dependable source detection. Add the correct UTM source and medium before publishing the link.
Google MyBusiness: ?utm_source=google&utm_medium=gbp Google LSA: ?utm_source=google&utm_medium=lsa BBB: ?utm_source=bbb&utm_medium=referral Nextdoor: ?utm_source=nextdoor&utm_medium=local_social HomeAdvisor: ?utm_source=homeadvisor&utm_medium=lead_directory
09

Enter Marketing Spend

Add spend by date and Source. Use the same Source names configured in Settings so cost, leads, calls, and performance stay connected. Update spend whenever invoices or ad-platform totals change.

10

Run a second branch

Open Connection and enable branches only when the business runs more than one branch — typically one per service area, each with its own website. Each branch then gets its own form, its own tracking numbers, and its own copy of the Sources list, so a visitor sees the number and form belonging to the site they landed on.

Settings gains a branch switcher above Form, Sources and Phone Numbers, and Analytics gains a branch filter. Reporting stays combined by default — a second branch's traffic is still counted under its parent source, and the filter is what splits it out.

Each branch has its own embed snippets. Paste the snippet shown while that branch is selected; the first branch's snippet is unchanged, so nothing already live needs re-pasting.

Turning this off hides the extra branches and their rows — nothing is deleted, and turning it back on restores them. Snippets already pasted on a second site keep reporting.