Automation without Zapier

Zapier is how most schools connect Teachable to everything else, and it's fine for a handful of steps. As a school grows, the monthly bill grows with it, and a surprising amount of it pays for work a few lines of code could do.

When Zapier is the right answer

  • A few automations, run a few hundred times a month.
  • Nobody on the team wants to look after code.
  • You're connecting to a tool Zapier supports well and you don't.

There's no shame in paying for convenience. The question is when it stops being worth it.

When it stops being worth it

  • The bill climbs with every enrolment, because every step counts as a task.
  • Your zaps need filters, paths and formatters to work around the data.
  • Something fails quietly and nobody notices for a week.

The alternative: one address, your rules

Send every Teachable webhook to a single address you control, and let one small program decide what happens:

app.post('/teachable', async (req, res) => {
  res.sendStatus(200);
  const event = req.body;

  switch (event.type) {
    case 'Enrollment.created':
      await addToCrm(event.object.user);
      await sendWelcome(event.object.user.email);
      break;

    case 'Transaction.refunded':
      await tagInCrm(event.object, 'refunded');
      break;

    case 'Enrollment.completed':
      await sendCertificateEmail(event.object);
      break;
  }
});

One address, however many events. That also gets round the limit on how many webhooks your plan allows.

Where the program can live

Option Good for
Google Apps Script Anything that ends in a spreadsheet. Free. The next lesson.
A serverless function Small handlers that run only when a message arrives. Usually free or nearly.
A small server Several automations, a database, and a nightly catch-up job.
Make or n8n Visual building like Zapier, usually cheaper at volume.
Or have it built

This is most of my client work: Teachable connected to CRMs, spreadsheets and email tools without a monthly Zapier bill. It's also what I'm building Optio Connect to do. If you'd rather not look after the code yourself, that's the route.

In short

  • Zapier suits a few, low-volume automations. At scale it gets expensive.
  • Send every webhook to one address, and switch on event.type.
  • Apps Script, a serverless function or a small server can all do the job.
Complete and Continue