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
- 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.
- Action — add "API by Pabbly" (the HTTP request action).
- Method:
POST - URL:
https://<your-platform-host>/api/v1/provision/student/ - Headers:
X-API-Key:<your-org-key>Content-Type:application/json
- 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" } - Replace the
{{trigger.*}}tokens with your mapped fields, and setcoursesto whatever the customer purchased. - Test the action. A
201/200with"status": "success"means the student is provisioned. - Turn the workflow on.
Tip: if different products map to different courses, add a Router/Filter step so each product path sends the right
coursesvalue.
Zapier
- Trigger — your source app event.
- Action — "Webhooks by Zapier" → "POST".
- URL:
https://<your-platform-host>/api/v1/provision/student/ - Payload Type:
JSON - Data:
email,first_name,last_name,courses(type the course-type name, e.g.ielts),tenure_months,external_ref - Headers:
X-API-Key=<your-org-key> - Test & turn on.
Make.com
- Trigger — your source module.
- Add an HTTP → "Make a request" module.
- URL:
https://<your-platform-host>/api/v1/provision/student/ - Method:
POST - Headers: add
X-API-Key=<your-org-key> - Body type:
Raw, Content type:application/json, Request content:json { "email": "{{email}}", "first_name": "{{first_name}}", "courses": ["ielts"], "external_ref": "{{order_id}}", "source": "make" } - 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.
