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.

AdapterTypeStatus
BLVDbookingproduction
OpenDentalbookingbeta
direct-confirmbookingproduction
Brevo RESTnotificationproduction
Twilio WhatsAppnotificationbeta
Sheetspersistenceproduction
Upstashdedupproduction

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.

Lead received
Attribution attached
Dedup check (Upstash)
Outcome confirmed
Offline conversion sent
State persisted
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.