Apointoo
Request access
Developers

You build the experience. Apointoo keeps the proof.

Next.js, Vue, WordPress, custom landing pages, your own form, or a booking flow, Apointoo runs as the attribution layer behind it. Handler-first, fully typed, tree-shakeable. Works on Node.js, Deno, Cloudflare Workers, and any edge runtime with the Fetch API.

$npm install git+https://github.com/vizuh/apointoo-sdk.gitnpm

Quick start

Capture events via API or SDK, preserve GCLID, UTMs, and session data, then send leads, bookings, and outcome updates through your /api/* route in Next.js, Hono, or Express.

import { createBookingHandler } from '@vizuh/apointoo-sdk/server'
import { brevoRestAdapter } from '@vizuh/apointoo-sdk/adapters/notification/brevo-rest'
import { directConfirmAdapter } from '@vizuh/apointoo-sdk/adapters/booking/direct-confirm'

export const app = createBookingHandler({
  config: {
    projectKey: 'your-clinic',
    locale: 'en-US',
    timezone: 'America/New_York',
  },
  booking: directConfirmAdapter(),
  notification: brevoRestAdapter({ apiKey: env.BREVO_API_KEY }),
})

Adapters

Each integration is a tree-shakeable adapter for the systems where conversions actually happen. Import only what you use.

AdapterTypeStatusImport
BLVDbookingproduction@vizuh/apointoo-sdk/adapters/booking/blvd
OpenDentalbookingbeta@vizuh/apointoo-sdk/adapters/booking/open-dental
direct-confirmbookingproduction@vizuh/apointoo-sdk/adapters/booking/direct-confirm
Brevo RESTnotificationproduction@vizuh/apointoo-sdk/adapters/notification/brevo-rest
Twilio WhatsAppnotificationbeta@vizuh/apointoo-sdk/adapters/notification/twilio-whatsapp
Sheetspersistenceproduction@vizuh/apointoo-sdk/adapters/persistence/sheets
Upstashdedupproduction@vizuh/apointoo-sdk/adapters/dedup/upstash

Architecture

One handler is the entry point. It runs the pipeline that holds attribution at every step and sends the confirmed conversion back to Google Ads through the configured adapters.

Handler
Pipeline
Booking adapter
Notification adapter
Persistence adapter
Dedup adapter

Environment variables

Configuration is environment variables. No SDK-specific config files. Drop the keys in, deploy, ship.

VariableRequiredDescription
NEXT_PUBLIC_GTM_IDNoGoogle Tag Manager container ID. Leave empty to disable GTM.
HEADLESS_WP_URLNoWordPress GraphQL endpoint for /docs and /blog content.
BREVO_API_KEYNoBrevo (Sendinblue) REST API key for the Brevo notification adapter.
BLVD_API_KEYNoBLVD API key for the BLVD booking adapter.
UPSTASH_REDIS_URLNoUpstash Redis REST URL for the dedup adapter.
UPSTASH_REDIS_TOKENNoUpstash Redis REST token.
GOOGLE_SHEETS_SPREADSHEET_IDNoGoogle Sheets spreadsheet ID for the persistence adapter.