guides

Outbound Webhooks: Send Tuition Centre Events to Zapier or Sheets

Push new leads, students, fee payments and class changes from TuitionDesk to Zapier, Make or your own endpoint, with signed requests, retries and a delivery log.

TuitionDesk Team··7 min read

Many tuition centres already run a few other tools next to their management software: a Google Sheet the owner checks every morning, a staff chat group, an accounting spreadsheet, or a CRM the sales team likes. The usual way to feed those tools is copy-paste, or an export someone remembers to run on Friday.

Outbound webhooks remove that step. When something happens in TuitionDesk, such as a new enquiry arriving or a fee payment being recorded, TuitionDesk sends a small message to a web address you choose. Tools like Zapier and Make can receive that message and turn it into a row in a sheet, a chat alert or a task. A developer can also receive it on your own server.

This guide explains what you can send, how to set it up, how to keep it safe, and what happens when your receiving tool is down. It is written for owners first, with a short technical section for whoever builds the receiver.

What is a webhook, in plain words?

A webhook is a doorbell. You give TuitionDesk the address of your receiving tool. Each time a chosen event happens, TuitionDesk rings that address and passes a short note about what happened. Nobody has to log in, export or refresh anything.

This is different from the enquiry API key that goes the other way, where your website sends leads into TuitionDesk. If you want that, see Embed your enquiry form on any website. Outbound webhooks carry events out of TuitionDesk.

Which events can you send?

The subscription screen only lets you pick events that TuitionDesk actually fires today:

EventFires when
lead.createdA new enquiry is submitted, from the public form, an embed, the enquiry API or staff entry
lead.updatedAn enquiry is edited or moved to another stage
student.createdA student is enrolled by staff (bulk import does not fire it)
student.updatedA student's details or status change
tutor.created / tutor.updatedA teacher is added or edited (bulk import does not fire it)
lesson.scheduledA class session is scheduled
lesson.updatedA session is edited, postponed or rescheduled
lesson.cancelledA session is cancelled
invoice.createdA manual fee is added for a student
invoice.paidA fee becomes fully paid
payment.recordedA payment is recorded against a student
homework.assignedHomework is published to its class

Two details worth knowing. First, imports from Excel do not trigger student or teacher events, so a one-time import will not flood your sheet. Second, the message is deliberately small. A payment event carries the student ID, the amount and a payment batch ID, and a fee event carries the invoice ID, amount, amount paid, status and due date. It is a signal to act on, not a full copy of your records.

Four practical uses

  1. New-enquiry alert. lead.created posts to a staff chat group or emails the counsellor the moment a parent fills the form. Pair it with a follow-up routine such as the Day 1, 3 and 7 enquiry sequence.
  2. Fee ledger sheet. payment.recorded appends a row (date, student ID, amount) to an accounts sheet your accountant already uses.
  3. Cancelled-class notice. lesson.cancelled triggers a message to a transport or venue contact outside TuitionDesk.
  4. Enrolment tracker. student.created adds a row to an onboarding checklist so welcome kits and books are not forgotten.

TuitionDesk already sends parent notifications for fees and class changes by itself. Webhooks are for the people and systems around your centre, not a replacement for the parent portal or the built-in fee reminders.

How to set it up

You need to be signed in as the owner. Other roles cannot manage subscriptions.

  1. Create a receiving address. In Zapier choose "Webhooks by Zapier", then "Catch Hook". In Make add a "Custom webhook" module. Both give you an https:// URL.
  2. In TuitionDesk open Settings, then Integrations and find the outbound webhooks section.
  3. Paste the URL, tick the events you want and add a label such as "Accounts sheet".
  4. Copy the signing secret. It starts with tdwhs_ and is shown once. If you lose it, rotate it to get a new one.
  5. Press Send test. A signed test event goes to your URL and the result appears in the delivery list. Test sends are rate-limited.
  6. Build the next step in Zapier or Make (add a row, send a message) and switch the Zap on.

Only https:// addresses are accepted. Addresses that point to private or internal networks are refused, which protects both you and TuitionDesk.

Reliability: retries, pausing and replay

Receiving tools go down. TuitionDesk plans for it:

  • A delivery is queued when the event happens and sent by a background job that runs about every five minutes, so expect a short delay rather than an instant ping.
  • A failed delivery is retried up to five attempts in total, waiting 1 minute, 5 minutes, 30 minutes and 2 hours between tries.
  • If three deliveries in a row fail completely, the endpoint is auto-paused. New events are held instead of lost, and held events expire after 30 days.
  • When your tool is fixed, reactivate the endpoint and choose whether to replay what was held. You can also retry a single failed delivery.
  • A list shows the most recent delivery attempts so you can see what was sent and what failed.

An owner can also pause a subscription deliberately. Unlike an auto-pause, events that happen while it is deactivated are not captured.

Security notes for the person building the receiver

Every request is a JSON POST signed with HMAC-SHA256 using your secret, in the same style as other major platforms:

HeaderMeaning
X-TuitionDesk-EventEvent name, for example payment.recorded
X-TuitionDesk-DeliveryUnique ID for this delivery, useful to ignore duplicates
X-TuitionDesk-TimestampUnix time the request was signed
X-TuitionDesk-Signaturesha256= followed by the hex signature

To verify, compute HMAC-SHA256 of the string timestamp + "." + raw request body with your secret and compare it to the signature. Reject anything older than a few minutes to block replays. TuitionDesk waits up to 10 seconds for a response and treats any 2xx status as success. Redirects are not followed, so give the exact final URL. Because a delivery can be retried, make your receiver safe to run twice by checking the delivery ID.

Zapier's basic catch hook cannot easily verify signatures. If the data matters (money, for instance), use "Code by Zapier" or a small server of your own, and treat unverified Zaps as low-trust.

Plans

Outbound webhooks are not on the Free plan. The number of subscriptions you can create depends on the plan: one on Starter, three on Growth, and unlimited on Pro and Enterprise. See the pricing page and plans explained for current plan details.

Before you switch it on

  • Decide who owns the receiving tool. A Zap built by a former staff member is a common reason events silently stop.
  • Keep the payload small and look up details only when needed. Avoid pasting student data into public or shared sheets.
  • Check the delivery list after the first week to confirm nothing is failing.

Try it on your centre

If your team already lives in sheets and chat groups, webhooks let TuitionDesk feed them automatically. Create your TuitionDesk account and see which plan suits your centre. For more on how your centre's data connects, read about reports and analytics and the activity history.

webhookszapiermaketuition software integrationgoogle sheetsautomationfee payment alerts

Run your centre with TuitionDesk — free

Fee tracking, attendance, batches, and a free public website with enquiry form. All in one place. No setup fee.

Start free — no credit card →