Custoz

For developers

Your product decides when to message. Custoz does the rest.

Post an event when something happens in your app — a trial starts, an invoice fails, an order ships. Custoz finds or creates the contact and runs the rules your team set up, without you writing a single WhatsApp call.

Events · Last hour

trial_started

Your app · 919876543210

202

invoice.payment_failed

Your app · rule ran

Sent

shopify.order_fulfilled

Webhook · signature verified

200

trial_started (retry)

Same id, ignored

Duplicate

Retries with the same id never send twice

Two ways in, one pipeline

Whether you control the payload or not, every event ends up in the same place: a contact update and your automation rules.

The events API

POST a small JSON event with a bearer key. Name it, attach up to 50 properties, and get a 202 back once it's stored.

The webhook gateway

Give third-party tools a unique webhook address. Custoz verifies the signature, translates the payload and stores the event.

Safe to retry

Send the same event id again and it's recognised as a duplicate, so network retries never trigger a second message.

Declare your events up front

Publish your list of events and their fields, so your team can build rules and test templates before the first one arrives.

A log you can replay

Every webhook delivery is logged with its outcome. Fix a mapping and replay the request from the dashboard.

Bring your own bot with n8n

Connect an n8n workflow to handle incoming customer messages, with a fallback if it stops responding.

Rule · Trial welcome

When

An event is received: trial_started

Trigger

If

event.tier is enterprise

Condition

Then

Send template “trial_welcome” with {{event.setup_code}}

Action

No code for your team

You send facts. Your team writes the messages.

Event properties become variables your team can drop into templates — an order number, a setup code, a plan name. Change the wording or the timing in Custoz without a release on your side.

  • Rules run on “An event is received”
  • Properties are available as template variables
  • Contacts are created from the event's phone, name, email and company

Custom webhook · Field mapping

order.customer.phone

Phone number

Mapped

event_type

Event name

Mapped

order.id

Dedup id

Mapped

line_items[0].name

Property: product

Mapped

Any webhook

Map a payload by pointing at it

For a service without a ready-made adapter, capture a real request, then pick which fields hold the phone number, the event name, the dedup id and the properties. JSON and form posts both work.

  • HMAC-SHA256 with your own header and prefix, a shared secret header, or unsigned
  • Ready-made adapters for Shopify, WooCommerce, Razorpay and Stripe
  • Invalid signatures are rejected and logged

Keep building

Your customers are already messaging you. Answer them well.

Bring your WhatsApp number, your team and your FAQs. Custoz does the rest.

No credit card needed.