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.
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.
Each product would otherwise implement its own Meta onboarding.
Messaging policies change; every product would need to keep up.
Platform-wide API keys create unacceptable blast radius.
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.
Model the integration
Decide which scopes each product needs: contacts, templates, messaging, conversations or campaigns.
Authorise the organization
Your product redirects the customer to grant access to their ClickMaker organization and a specific WhatsApp number.
Send domain events
A class reminder becomes a template send; a delivery update becomes a utility message with an external ID.
Meter and monitor
API calls and message events are attributed to the application and organization for analytics and billing.
ClickMaker ConnectCustomer-owned WABA and phone number. Meta policy, templates and delivery remain under Meta's control.
Assets stay with the customerCapabilities
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.jsimport 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