Quick start
Three imports. One handler export. Deploy to any route in your Next.js, Hono, or Express app.
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. Import only what you use.
| Adapter | Type | Status | Import |
|---|---|---|---|
| BLVD | booking | production | @vizuh/apointoo-sdk/adapters/booking/blvd |
| OpenDental | booking | beta | @vizuh/apointoo-sdk/adapters/booking/open-dental |
| direct-confirm | booking | production | @vizuh/apointoo-sdk/adapters/booking/direct-confirm |
| Brevo REST | notification | production | @vizuh/apointoo-sdk/adapters/notification/brevo-rest |
| Twilio WhatsApp | notification | beta | @vizuh/apointoo-sdk/adapters/notification/twilio-whatsapp |
| Sheets | persistence | production | @vizuh/apointoo-sdk/adapters/persistence/sheets |
| Upstash | dedup | production | @vizuh/apointoo-sdk/adapters/dedup/upstash |
Architecture
The handler is the entry point. It delegates to a pipeline, which calls the configured adapters in sequence.
Handler
→Pipeline
→Booking adapter
→Notification adapter
→Persistence adapter
→Dedup adapter
Environment variables
All configuration is via environment variables. No SDK-specific config files.
| Variable | Required | Description |
|---|---|---|
| NEXT_PUBLIC_GTM_ID | No | Google Tag Manager container ID. Leave empty to disable GTM. |
| WP_GRAPHQL_URL | No | WordPress GraphQL endpoint for /docs and /blog content. |
| BREVO_API_KEY | No | Brevo (Sendinblue) REST API key for the Brevo notification adapter. |
| BLVD_API_KEY | No | BLVD API key for the BLVD booking adapter. |
| UPSTASH_REDIS_URL | No | Upstash Redis REST URL for the dedup adapter. |
| UPSTASH_REDIS_TOKEN | No | Upstash Redis REST token. |
| GOOGLE_SHEETS_SPREADSHEET_ID | No | Google Sheets spreadsheet ID for the persistence adapter. |