Skip to main content
Portal.ioContractor project software

Your client signs the Portal.io proposal. Google and Meta never find out.

AV, security and IT integrators run ads that bring in inquiries, but the win happens later, when a homeowner picks Good, Better or Best in your Portal.io proposal, signs it and pays the deposit. Portal.io documents no web form and no place for ad tags, so Google and Meta never see that moment and keep bidding on whoever filled out a form. We tie each accepted proposal back to its click and report it at the total the client chose.

Free30 minutesNo obligation

Portal.io · what breaks

What goes wrong when you run ads into Portal.io

  1. 01

    Google Ads only counts the form fill

    The click lands on your site, but the signed proposal happens days or weeks later in Portal.io, often after a site survey. Bidding learns from inquiries that never buy, so your budget keeps chasing tire-kickers.

  2. 02

    No way to tell which ads close jobs

    A Portal People record holds names, emails, addresses and notes, with no documented lead source field. Once the inquiry is typed in, the campaign that produced it is gone, and you can't tell which spend to cut.

  3. 03

    A doorbell swap counts the same as a whole-home system

    Without the accepted total on the conversion, a small camera add-on and a full theater or alarm install look identical to Google and Meta, so they can't steer budget toward the big jobs.

  4. 04

    Repeat clients and change orders pose as new wins

    Portal's proposal status trigger fires on every proposal, including a second one for a client you already have, and change orders send status updates of their own. A catch-all Zap reports that repeat business as fresh ad revenue and flatters your return on ad spend.

Portal.io · the fix

What changes after we fix it — Portal.io

  • Ads optimize for signed proposals

    Google and Meta get the accepted proposal and the paid deposit as conversions, so bidding favors the searches and audiences that turn into installs.

  • Every Portal client has a source

    Each accepted proposal traces back to its campaign, keyword or ad set, so you can see which spend fills your install calendar.

  • Real job value, new customers only

    Conversions carry the accepted total, and change orders and repeat clients are kept out of acquisition numbers.

Portal.io · architecture

What Portal.io actually lets you hook into

Portal.io documents no Google Ads, GA4, GTM or Meta Pixel connection. The hooks below are the ones in its own help center, and they're enough to run server-side tracking.

  1. 1

    Zapier triggers (Premium plan and up)

    Contact Modification, Update Proposal Status, Update Payment Status, Update Order Status and Update Change Order Status, all instant. Payloads include proposal ID, status, total, client name and email, and salesperson.

  2. 2

    Proposal and payment notifications

    Alerts when a proposal is opened, viewed or accepted and when a customer pays. Handy for testing, not as the conversion source.

  3. 3

    Native Zoho connection (beta)

    Proposals push one way to Zoho CRM Deals, with Portal statuses mapped to deal stages. If you run Zoho, the deal may be the better place to join the click.

  4. 4

    API on the Unlimited plan

    Portal lists API access for Unlimited customers and pre-approved partners. Public endpoint documentation wasn't available to us, so we confirm what it exposes before relying on it.

  5. 5

    No tags on the proposal page

    The client reviews, signs and pays inside Portal's own interface, so there's no place to add a Pixel or GA4 tag there. Everything after the inquiry has to go server-side.

Portal.io · diagnose

Where Portal.io tracking breaks, in the order we check

Most Portal.io setups lose data in the gap between your website and the moment someone types the client into People.

  1. 01

    Does your site form keep the click ID?

    We submit a test inquiry from an ad-tagged URL and look for the click ID and UTMs in what arrives.

  2. 02

    How do clients get into People?

    Typed by hand, imported once by CSV, or pulled from Zoho. A mistyped email breaks the match, so we check how often that happens.

  3. 03

    Which status value means accepted?

    Portal's help center doesn't list status names, so we read the Update Proposal Status payload on a real acceptance and filter on that exact value.

  4. 04

    Does the total reflect the chosen option?

    We accept a test proposal on a non-default tier and confirm the trigger carries that total.

  5. 05

    Are change orders and repeat clients separated?

    We check the change order trigger and the client's proposal history so second jobs don't count as new acquisitions.

Portal.io · prove

The QA evidence — Portal.io

Run on a real inquiry and a real accepted proposal in your live Portal account.

Source of truth

Portal.io accepted proposals and payment records: proposal ID, acceptance date, accepted total, client email and deposit status

  • One test inquiry from an ad-tagged URL, with the click ID stored against the lead's email.
  • The same client created in Portal People and matched to that click by email.
  • One accepted proposal producing exactly one conversion each in Google Ads and Meta, sharing an event ID, valued at the chosen options' total.
  • A deposit payment arriving as its own event after the processor confirms it.
  • A change order confirmed absent from acquisition conversions.
  • Accepted proposals reconciled against each ad platform over a closed window, then again 30 days later.

Portal.io · free audit

What we check in the free audit

  • Does your site form keep the click ID?
  • How do clients get into People?
  • Which status value means accepted?
  • Does the total reflect the chosen option?
  • Are change orders and repeat clients separated?

Checked against

Portal.io accepted proposals and payment records: proposal ID, acceptance date, accepted total, client email and deposit status

Get my free conversion tracking audit

Free30 minutesNo obligation

Portal.io · when not to buy

When you don't need this on Portal.io

Plenty of integrators running Portal.io are better off leaving their tracking alone.

  • If your work comes from builders, designers and referrals and you don't run paid ads, there's no click to attribute.
  • If you send a handful of proposals a month, a monthly offline upload of accepted proposals to Google Ads can do the job without Zapier.
  • If you run Zoho CRM and already store the click ID on the deal Portal updates, the fix may belong on the Zoho side, and we'll tell you that.
  • If your ads mostly drive service or monitoring calls that never become a Portal proposal, Portal isn't where your conversions live.

Portal.io · what we deliver

The event map on Portal.io

  • Inquiry captured on your site

    Form or tracked call, with click IDs and UTMs saved against the visitor's email.

  • Client record in People

    Portal's Contact Modification trigger fires when a contact changes; we confirm it fires for new clients, then match the record to the stored click by email.

  • Proposal opened

    A secondary signal from Portal's opened and viewed notifications, used for reporting and never counted as a sale.

  • Proposal accepted and signed

    The primary conversion, valued at the total of the options the client selected.

  • Deposit paid

    From Portal's Update Payment Status trigger, sent as its own event.

  • Excluded on purpose

    Change orders, new proposals for existing customers, and internal test proposals stay out of your ad conversions.

Written guarantee

95%+ tracking accuracy

Measured against Portal.io accepted proposals and payment records: proposal ID, acceptance date, accepted total, client email and deposit status. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Portal.io questions, answered

Not natively. Portal's help center lists QuickBooks, Zapier, Zoho and API partners, with no Google Ads, GA4 or Meta connection, so conversions have to be sent server-side from Portal's Zapier triggers.

Free · 30 min

Find out which ads turn into signed Portal.io proposals

Free30 minutesNo obligation