Recipe: Zapier, Pabbly & Make (no code)
Get PrepareBuddy events — a finished test, a new student, an enrolment about to expire — into any app Zapier, Pabbly Connect or Make can reach (Google Sheets, HubSpot, Slack, email, your CRM) without writing code. You connect two things: PrepareBuddy sends a webhook → the tool catches it and does something.
You need: an organization-admin login to PrepareBuddy, and an account on one of the three tools.
Part 1 — Catch the webhook in your tool
Zapier
- Create Zap → Trigger → Webhooks by Zapier → Catch Hook → Continue.
- Zapier shows a Custom Webhook URL like
https://hooks.zapier.com/hooks/catch/123456/abcdef/. Click Copy.
Pabbly Connect
- Create Workflow → Trigger → Webhook.
- Copy the webhook URL Pabbly shows.
Make (Integromat)
- Create a new scenario → + → Webhooks → Custom webhook → Add. Name it PrepareBuddy.
- Copy the address Make shows.
Part 2 — Tell PrepareBuddy where to send
- PrepareBuddy: Organization dashboard → API Keys & Integrations → Manage webhooks.
- Paste the URL from Part 1.
- Time zone for timestamps: e.g.
Asia/Kolkata(or leaveUTC). - Send these events: untick anything you don't need. For a results sheet, keep only
result.final. - Click Add webhook, then Send test.
- Back in your tool, click Test trigger (Zapier), Re-capture (Pabbly) or Run once (Make). It
receives the test event — the fields
type=pinganddata.message.
To map result fields (score, email …) the tool needs one real event. Easiest: sign in as a test student and finish a short quiz, then test the trigger again. Or map the fields by name using the example payloads.
Part 3 — Do something with it
Example A: every final score into a Google Sheet (updates on re-mark)
Make a sheet with columns: Result ID, Email, Name, Test, Score, Out of, Percentage, Completed.
Zapier
- + → Filter by Zapier: Only continue if
Type(Text) Exactly matchesresult.final. - + → Google Sheets → Lookup Spreadsheet Row: lookup column Result ID, lookup value
Data Id. Tick "Create Google Sheets Spreadsheet Row if it doesn't exist yet?" and map every column:
| Sheet column | Zapier field |
|---|---|
| Result ID | Data Id |
Data Student Email |
|
| Name | Data Student First Name |
| Test | Data Item Title |
| Score | Data Score |
| Out of | Data Max Score |
| Percentage | Data Percentage |
| Completed | Data Completed At |
- + → Google Sheets → Update Spreadsheet Row: Row = the row from step 2; map the same fields (this updates a re-marked score).
- Turn the Zap on.
Pabbly: Filter (type equals result.final) → Google Sheets: Lookup Row → Router: found →
Update Row, not found → Add Row.
Make: Filter (type = result.final) → Google Sheets: Search Rows (Result ID = data.id) →
Router: bundles = 0 → Add a Row, otherwise → Update a Row.
Example B: warn the counsellor when access is about to end
- Webhook with only
enrollment.expiringticked. - Action: Gmail/Outlook → Send email to your counsellor: "{{data.student.first_name}}'s {{data.enrollment.course_name}} access ends in {{data.days_left}} days ({{data.enrollment.end_date}})."
Example C: post in Slack when a student falls behind
- Webhook with only
assignment.overdueticked. - Action: Slack → Send Channel Message: "⏰ {{data.student.first_name}} {{data.student.last_name}} has not finished {{data.item.title}} (due {{data.due_date}})."
Example D: new student → your CRM
- Webhook with only
student.joinedticked. - Action: HubSpot/Zoho → Create or update contact: email =
data.email, first name =data.first_name, last name =data.last_name.
Part 4 — Assign a test automatically (the other direction)
Your tool can also tell PrepareBuddy to assign work — for example when someone buys a mock test in your shop. This needs a Full access key.
- Find the item's id:
GET https://www.preparebuddy.com/api/v1/catalog/(see Roster, Assignments & Activity API) — note thekindanditem_id. - Action: Webhooks by Zapier → POST (Pabbly: API by Pabbly, Make: HTTP → Make a request):
- URL:
https://www.preparebuddy.com/api/v1/assignments/ - Headers:
X-API-Key= your full-access key - Payload type: JSON
-
Data:
json {"email": "{{buyer_email}}", "kind": "test", "item_id": 57, "due_date": "2026-10-31"}
The student must already be in your organization — put the
onboarding call first in the same workflow if they might be new.
3. A reply with "created": true means it was assigned; "created": false means they already had it open
(safe — nothing is assigned twice).
Security note
Zapier, Pabbly and Make webhook URLs are long and secret: anyone who has one can post to your workflow. Don't share them. These tools can't check PrepareBuddy's signature header; if you need that, receive webhooks in your own server (Webhooks → Verify the signature).
