Integration guide
Send every Assessly submission to Zapier
A webhook in Assessly, a Zap in Zapier, and each submission lands wherever you already work: Slack, a spreadsheet, your CRM. Nothing to code.
- AssesslyA candidate submits
- WebhookThe payload leaves, signed
- ZapierYour Zap catches it
- AnywhereSlack, Sheets, a CRM, an inbox
What people build first
Six Zaps that need one trigger and one action each.
A message in Slack
Tell a channel when a candidate finishes an assessment.
- Trigger
- submission.completed
- Action
- Send channel message
A row in Google Sheets
Log every submission to a spreadsheet you already track hiring in.
- Trigger
- submission.completed
- Action
- Create spreadsheet row
An email
Write to the candidate or the hiring manager with the result attached.
- Trigger
- submission.completed
- Action
- Send email via Gmail
A contact in your CRM
Create or update the candidate in HubSpot, Salesforce or Pipedrive.
- Trigger
- submission.completed
- Action
- Create or update contact
A card to review
Open a Trello card or an Asana task the moment a submission starts.
- Trigger
- submission.created
- Action
- Create card or task
An interview slot
Book the next conversation when a candidate scores above your threshold.
- Trigger
- submission.completed
- Action
- Create calendar event
Set it up
Six steps, in this order. The webhook URL from step two is the only thing that crosses between the two products.
Create a Zap
In Zapier, create a Zap and choose Webhooks by Zapier as the trigger app, with Catch Hook as the event.
Copy the webhook URL
Zapier generates a URL for this Zap. Copy it; the next step needs it.
Add the webhook in Assessly
Open Settings, then Integrations, and create a webhook with that URL. Pick the events to send, for example submission.completed.
Send a test
Use Send test in Assessly, then Test trigger in Zapier. The sample payload arrives and every field becomes available to map.
Choose the action
Decide what happens when a submission arrives, and map the fields (candidate name, email, score) onto the destination app.
Turn the Zap on
Review and switch it on. From here, every matching event in Assessly runs the Zap.
The events
Pick any of the three when you create the webhook.
submission.createdA candidate has started an assessment
Track starts, tell the hiring manager
submission.completedA candidate has submitted their answers
Log the result, send a message, update the CRM
submission.updatedA submission was reviewed or scored
Sync the status, trigger the next step
What arrives
One flat JSON object per event, so every field maps in Zapier without digging into nested data.
{"event": "submission.completed","timestamp": "2025-01-15T10:30:00Z","submission_id": "sub_abc123","assessment_id": "asmt_xyz789","assessment_title": "Frontend Developer Test","candidate_name": "John Doe","candidate_email": "john.doe@example.com","candidate_phone": "+1 555-123-4567","status": "completed","ai_score": 85,"ai_summary": "Strong technical skills with excellent problem-solving...","grade": "A","time_spent_seconds": 2400,"started_at": "2025-01-15T09:50:00Z","completed_at": "2025-01-15T10:30:00Z","public_url": "https://assessly.app/submission/sub_abc123","company_id": "comp_xyz123","total_questions": 10,"answered_questions": 10}
The full answer, through the API
The webhook carries the summary: who, which assessment, the score. For every question and every answer, ask the API from inside the Zap.
The payload stays small on purpose. Small means it arrives fast, flat means it maps in Zapier, and the full submission is one request away when a Zap needs it.
- Create an API key in Settings, Integrations.
- In the Zap, add a Webhooks by Zapier action step.
- Take
submission_idfrom the trigger. - Send a GET to
https://assessly.app/api/v1/submissions/{submission_id}. - Add the header
Authorization: Bearer YOUR_API_KEY.
Signed, every time
Each delivery carries an HMAC-SHA256 signature. Webhooks by Zapier accepts it as is; a custom endpoint can verify it.
| Header | What it carries |
|---|---|
| X-Webhook-Signature | HMAC-SHA256 signature of the body |
| X-Webhook-Event | The event type, for example submission.completed |
| X-Webhook-Delivery-ID | A unique id for this delivery |
Stuck on a step?
Write to us with the Zap and the event you chose. If the answer is in the API instead, the reference is one page over.