Create assessment

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.

  1. AssesslyA candidate submits
  2. WebhookThe payload leaves, signed
  3. ZapierYour Zap catches it
  4. 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.

  1. Create a Zap

    In Zapier, create a Zap and choose Webhooks by Zapier as the trigger app, with Catch Hook as the event.

  2. Copy the webhook URL

    Zapier generates a URL for this Zap. Copy it; the next step needs it.

  3. 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.

  4. Send a test

    Use Send test in Assessly, then Test trigger in Zapier. The sample payload arrives and every field becomes available to map.

  5. Choose the action

    Decide what happens when a submission arrives, and map the fields (candidate name, email, score) onto the destination app.

  6. 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.created

    A candidate has started an assessment

    Track starts, tell the hiring manager

  • submission.completed

    A candidate has submitted their answers

    Log the result, send a message, update the CRM

  • submission.updated

    A 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.

JSON
{
"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.

  1. Create an API key in Settings, Integrations.
  2. In the Zap, add a Webhooks by Zapier action step.
  3. Take submission_id from the trigger.
  4. Send a GET to https://assessly.app/api/v1/submissions/{submission_id}.
  5. Add the header Authorization: Bearer YOUR_API_KEY.

Read the API reference

Signed, every time

Each delivery carries an HMAC-SHA256 signature. Webhooks by Zapier accepts it as is; a custom endpoint can verify it.

Headers on every delivery
HeaderWhat it carries
X-Webhook-SignatureHMAC-SHA256 signature of the body
X-Webhook-EventThe event type, for example submission.completed
X-Webhook-Delivery-IDA 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.