Connect Make to KirokuForms

Use Make (formerly Integromat) to automate workflows triggered by KirokuForms submissions, approvals, and rejections — no custom code required.

Prerequisites

  • A Make account (free tier works for testing)
  • A KirokuForms account with at least one active form
  • A KirokuForms API key with appropriate scopes — generate one from the API Keys page:
    • submissions:read — read submission data
    • submissions:write — create/update submissions
    • hitl:create — approve or reject submissions

Option A: Receive Webhooks in Make

Use this approach when you want Make to react to events in KirokuForms (new submissions, approvals, rejections).

Step 1: Create a Webhook Module in Make

  1. In Make, create a new scenario.
  2. Add a Webhooks > Custom webhook module as the trigger.
  3. Click Add to create a new webhook and give it a name (e.g., "KirokuForms Submissions").
  4. Copy the generated webhook URL (it looks like https://hook.make.com/abc123...).

Step 2: Configure the Webhook in KirokuForms

  1. Go to your KirokuForms dashboard and select the form.
  2. Navigate to Settings > Webhooks.
  3. Click Add Webhook and paste the Make URL.
  4. Select the events you want to receive:
    • submission.created — new form submissions
    • decision.approved — approved submissions
    • decision.rejected — rejected submissions
  5. Optionally set a webhook secret for signature verification.
  6. Enable the webhook and save.

Step 3: Define the Data Structure

After saving, use the Test button in KirokuForms to send a sample payload. Make will auto-detect the data structure. The payload looks like this:

Example Webhook Payload
{
  "eventType": "form.submission.new",
  "formId": "frm_abc123xyz789",
  "submissionId": "sub_def456uvw012",
  "timestamp": "2026-04-01T10:30:00Z",
  "data": {
    "name": "Arthur Dent",
    "email": "arthur.dent@example.com",
    "feedback_topic": "General Inquiry",
    "message": "What is the answer to life, the universe, and everything?"
  },
  "metadata": {
    "submittedVia": "web"
  }
}

Step 4: Add Processing Modules

After the webhook trigger, add any Make modules you need. Common choices:

  • Google Sheets — append submission data as a row
  • Slack — post a notification to a channel
  • Email — send a confirmation or notification
  • Airtable — create a record
  • HTTP — call any external API

Map the fields from the webhook payload (e.g., data.name, data.email) to the inputs of your chosen module.

Option B: Call the KirokuForms API from Make

Use this approach when you want Make to push data into KirokuForms — for example, creating submissions from another source or approving/rejecting submissions programmatically.

Create a Submission

  1. Add an HTTP > Make a request module.
  2. Configure it:
    • URL: https://www.kirokuforms.com/api/v1/submissions
    • Method: POST
    • Headers:
      • Authorization: Bearer YOUR_API_KEY
      • Content-Type: application/json
      • Idempotency-Key: a unique value per request (prevents duplicates)
    • Body type: Raw / JSON
Create Submission — cURL equivalent
curl -X POST "https://www.kirokuforms.com/api/v1/submissions" \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -H "Idempotency-Key: unique-request-id-123" \
     -d '{
           "formId": "YOUR_FORM_ID",
           "name": "Jane Doe",
           "email": "jane@example.com",
           "message": "Submitted via Make"
         }'

A successful response (201) looks like:

Create Submission — Response
{
  "success": true,
  "data": {
    "submissionId": "sub_xyz789abc456",
    "taskId": null,
    "timestamp": "2026-04-01T12:00:00Z"
  },
  "message": "Submission created"
}

Approve or Reject a Submission

Use the approve or reject endpoints to complete a decision workflow:

  • POST /api/v1/submissions/{submissionId}/approve
  • POST /api/v1/submissions/{submissionId}/reject
Approve Submission — cURL equivalent
curl -X POST "https://www.kirokuforms.com/api/v1/submissions/SUBMISSION_ID/approve" \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json"

Example Scenarios

1. New Submission to Google Sheets + Slack Notification

  1. Trigger: Webhooks > Custom webhook (KirokuForms submission.created)
  2. Module 2: Google Sheets > Add a row — map data.name, data.email, submissionId
  3. Module 3: Slack > Send a message — post a summary to #submissions

2. CRM Lead Creates a KirokuForms Submission

  1. Trigger: HubSpot/Salesforce > New contact
  2. Module 2: HTTP > Make a request — POST to /api/v1/submissions with contact data

3. Auto-Approve Submissions Matching a Filter

  1. Trigger: Webhooks > Custom webhook (KirokuForms submission.created)
  2. Filter: Only continue if data.feedback_topic equals "General Inquiry"
  3. Module 3: HTTP > Make a request — POST to /api/v1/submissions/{submissionId}/approve

Troubleshooting

  • Make webhook not receiving data: Verify the webhook URL is correct in KirokuForms and that the webhook is enabled. Use the Test button in KirokuForms to send a sample event.
  • 401 Unauthorized on API calls: Check that your API key is valid and has the required scopes. API keys use Bearer authentication in the Authorization header.
  • 422 Validation Error: The submission payload does not match the form's expected fields. Check the details array in the error response for specific field errors.
  • Duplicate submissions: Always use an Idempotency-Key header when creating submissions. This ensures retries are safe.

Related Resources