Install our app for a better experience!

Connect Pabbly, Zapier, or Make

Automation Setup — Pabbly, Zapier & Make

All three tools do the same thing: send an HTTP POST to https://<your-platform-host>/api/v1/provision/student/ with your X-API-Key header and a JSON body. Pick whichever your team already uses — the endpoint is identical.

First, get an API key (see the Overview page → "Get an API key").

Pabbly Connect

  1. Trigger — add your source app (e.g. WooCommerce → Order Created/Completed, or your membership plugin's "member activated" event). Map the customer's email and name from the trigger.
  2. Action — add "API by Pabbly" (the HTTP request action).
  3. Method: POST
  4. URL: https://<your-platform-host>/api/v1/provision/student/
  5. Headers:
    • X-API-Key : <your-org-key>
    • Content-Type : application/json
  6. Payload type: JSON / Raw, with a body like: json { "email": "{{trigger.email}}", "first_name": "{{trigger.first_name}}", "last_name": "{{trigger.last_name}}", "courses": ["ielts"], "tenure_months": 6, "external_ref": "{{trigger.order_id}}", "source": "pabbly" }
  7. Replace the {{trigger.*}} tokens with your mapped fields, and set courses to whatever the customer purchased.
  8. Test the action. A 201/200 with "status": "success" means the student is provisioned.
  9. Turn the workflow on.

Tip: if different products map to different courses, add a Router/Filter step so each product path sends the right courses value.

Zapier

  1. Trigger — your source app event.
  2. Action"Webhooks by Zapier" → "POST".
  3. URL: https://<your-platform-host>/api/v1/provision/student/
  4. Payload Type: JSON
  5. Data: email, first_name, last_name, courses (type the course-type name, e.g. ielts), tenure_months, external_ref
  6. Headers: X-API-Key = <your-org-key>
  7. Test & turn on.

Make.com

  1. Trigger — your source module.
  2. Add an HTTP → "Make a request" module.
  3. URL: https://<your-platform-host>/api/v1/provision/student/
  4. Method: POST
  5. Headers: add X-API-Key = <your-org-key>
  6. Body type: Raw, Content type: application/json, Request content: json { "email": "{{email}}", "first_name": "{{first_name}}", "courses": ["ielts"], "external_ref": "{{order_id}}", "source": "make" }
  7. Run once to test, then schedule / turn on.

Test from the command line

# 1. Check the key
curl -s https://<host>/api/v1/ping/ -H "X-API-Key: <key>"

# 2. Provision a test student
curl -s -X POST https://<host>/api/v1/provision/student/ \
  -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
        "email": "[email protected]",
        "first_name": "Test",
        "last_name": "Student",
        "courses": ["ielts"],
        "tenure_months": 3,
        "external_ref": "manual_test_1",
        "send_welcome_email": false
      }'

A 201 with "status": "success" and an enrollments array means it worked. Confirm in Django admin → Integrations → Provisioning Logs.