Skip to content
Apointoo
Request access
Product

How Apointoo proves which campaigns became revenue.

Preserve the click. Connect the frontend you already use. Confirm what became a real conversion. Send the result back to Google Ads. The same loop, end to end.

Preserve the clickConnect your frontendConfirm the outcomeSend it back to Google Ads
01

Preserve the click that drove the opportunity

GCLID, fbclid, msclkid, UTMs, landing page, and source are captured on the very first touch and held across sessions. Even if the user comes back days later, the conversion still attributes to the campaign that brought the click, without you wiring it together.

// app/api/conversion/route.ts
import { app } from '@/lib/apointoo'
export { app as POST }
02

Connect the frontend you already use

A form, a booking page, a quote request, a custom flow, Apointoo plugs into the experience you already built. You keep control of design, copy, and flow. The attribution layer lives behind it.

// Attribution captured at the real conversion moment
const attribution = getAttribution()
// { gclid: 'xxx', utm_source: 'google', source: 'first-touch', ... }
03

Confirm what became a real conversion

A lead can become a booking, a quote can be accepted, a sale can be paid. Mark that outcome, manually or via integration, and the original click finally has a result tied to it. Your report stops at the form no longer.

// Confirm the outcome when it actually happens
await apointoo.confirm({
  leadId: lead.id,
  outcome: 'sale_paid',
  value: 1840.00,
  currency: 'EUR',
})
04

Send the result back to Google Ads

When the conversion is confirmed, Apointoo sends clean data back to Google Ads so the campaign starts learning from what became revenue, not from what filled out a form. The Smart Bidding signal goes from noisy to useful.

// Offline conversion goes back to Google Ads on confirm
await apointoo.uploadOfflineConversion({
  gclid: attribution.gclid,
  conversionName: 'sale_paid',
  conversionValue: 1840.00,
})

Plugs into the systems where conversions actually happen

Booking software, notification channels, dedup, and storage, each one follows the same adapter shape. Connect the systems you already use to confirm conversions; swap them later without changing the rest.

BLVD

booking

production

OpenDental

booking

beta

direct-confirm

booking

production

Brevo REST

notification

production

Twilio WhatsApp

notification

beta

Sheets

persistence

production

Upstash

dedup

production

From click to confirmed revenue, in one path

Every conversion travels the same deterministic pipeline. The original click stays attached at every stage, so the result that comes back to Google Ads can always be traced to the campaign that started it.

  1. 1Lead received
  2. 2Attribution attached
  3. 3Dedup check (Upstash)
  4. 4Outcome confirmed
  5. 5Offline conversion sent
  6. 6State persisted
Conversions
Converted today12
João P.Search · Generic€ 123
lead
Marina S.Meta · Remarketing€ 240
lead
Ana R.Performance Max€ 89
lead

Click a lead to send the conversion to its originating channel

Google Ads
offline conversion
Meta
campaign learns
Reserve with Google

Reserve with Google, ready to plug in.

For booking-driven clients, Apointoo includes a feed publisher for Google's Reserve with Google program. Availability appears on Google Search and Maps, the booking is captured with full attribution, and the result still flows back to the campaign that brought the click.