Solutions / SaaS

Make WhatsApp a native channel in your SaaS product.

Gymavio, SchoolOrbit, Builty.in and external SaaS products use ClickMaker Connect as reusable communication infrastructure. You focus on your product workflow; we run the WhatsApp connection, messaging and event pipeline.

One API across every customer tenantApplication-level permissionsUsage metering per organizationNo Meta Graph API knowledge required

The problem

Every product eventually needs messaging

Reminders, receipts, delivery updates and support replies all converge on WhatsApp. Building it repeatedly inside each product creates duplicated queues, security reviews and compliance risk.

01

Each product would otherwise implement its own Meta onboarding.

02

Messaging policies change; every product would need to keep up.

03

Platform-wide API keys create unacceptable blast radius.

04

Usage needs to be attributable to the right customer and product.

How it works

A shared messaging layer under your products

ClickMaker becomes the communication substrate. Your products request messaging through scoped applications while each end customer owns their WhatsApp assets and consent records.

1

Model the integration

Decide which scopes each product needs: contacts, templates, messaging, conversations or campaigns.

2

Authorise the organization

Your product redirects the customer to grant access to their ClickMaker organization and a specific WhatsApp number.

3

Send domain events

A class reminder becomes a template send; a delivery update becomes a utility message with an external ID.

4

Meter and monitor

API calls and message events are attributed to the application and organization for analytics and billing.

GymavioFitness OS
SchoolOrbitSchool ERP
Builty.inTransport
Your productExternal SaaS
ClickMaker Connect
Scoped API keys
Tenant isolation
Encrypted Meta tokens
Event pipeline
WhatsApp Cloud API

Customer-owned WABA and phone number. Meta policy, templates and delivery remain under Meta's control.

Assets stay with the customer
Meta access tokens never leave the server

Capabilities

What you can build on the platform.

Predictable REST surface

Versioned endpoints, cursor pagination, stable error codes and OpenAPI documentation.

Webhook fan-out

Your webhook endpoint receives only events for authorizations you own, signed and replay-protected.

Environment separation

Separate credentials for development and production with revocation and rotation.

Operational limits

Per-application rate limits and per-tenant concurrency protect the shared platform.

Receive a delivery event

Node.js
webhook.ts
import express from "express"
import { verifyClickMakerSignature } from "@clickmaker/connect"

const app = express()

app.post(
  "/webhooks/clickmaker",
  express.raw({ type: "application/json" }),
  async (req, res) => {
    const valid = verifyClickMakerSignature({
      payload: req.body,
      signature: req.header("X-ClickMaker-Signature") ?? "",
      timestamp: req.header("X-ClickMaker-Timestamp") ?? "",
      secret: process.env.CLICKMAKER_WEBHOOK_SECRET!,
    })

    if (!valid) return res.status(401).send("invalid signature")

    const event = JSON.parse(req.body.toString())
    // Deduplicate by event.id — delivery is at-least-once.
    await handleEvent(event)
    res.status(200).json({ received: true })
  },
)

Examples reflect the documented API shape. Endpoints marked as planned in the developer portal are not yet available.

FAQ

Common questions.

Can we keep our own product branding?

Yes. ClickMaker is infrastructure. Your customers interact with your product; the WhatsApp sender is the customer's own business number.

Is there a sandbox?

A test environment and provider adapter are part of the platform roadmap. Production Meta messaging requires verified assets and is never simulated in production.

How are API limits enforced?

Per-application rate limits and plan quotas apply. Responses include rate-limit headers and a stable error code when a limit is reached.

ClickMaker Connect

Standardise messaging across your products

Use one integration contract for every product you operate, present and future.

No shared ClickMaker sender · Customers own their assets