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 datasubmissions:write— create/update submissionshitl: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
- In Make, create a new scenario.
- Add a Webhooks > Custom webhook module as the trigger.
- Click Add to create a new webhook and give it a name (e.g., "KirokuForms Submissions").
-
Copy the generated webhook URL (it looks like
https://hook.make.com/abc123...).
Step 2: Configure the Webhook in KirokuForms
- Go to your KirokuForms dashboard and select the form.
- Navigate to Settings > Webhooks.
- Click Add Webhook and paste the Make URL.
-
Select the events you want to receive:
submission.created— new form submissionsdecision.approved— approved submissionsdecision.rejected— rejected submissions
- Optionally set a webhook secret for signature verification.
- 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:
{
"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
- Add an HTTP > Make a request module.
-
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
- URL:
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:
{
"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
curl -X POST "https://www.kirokuforms.com/api/v1/submissions/SUBMISSION_ID/approve" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" Idempotency-Key header on create requests. If Make
retries the request (e.g., due to a timeout), KirokuForms returns the cached
response instead of creating a duplicate. Keys expire after 24 hours.
Example Scenarios
1. New Submission to Google Sheets + Slack Notification
- Trigger: Webhooks > Custom webhook (KirokuForms
submission.created) - Module 2: Google Sheets > Add a row — map
data.name,data.email,submissionId - Module 3: Slack > Send a message — post a summary to
#submissions
2. CRM Lead Creates a KirokuForms Submission
- Trigger: HubSpot/Salesforce > New contact
- Module 2: HTTP > Make a request — POST to
/api/v1/submissionswith contact data
3. Auto-Approve Submissions Matching a Filter
- Trigger: Webhooks > Custom webhook (KirokuForms
submission.created) - Filter: Only continue if
data.feedback_topicequals "General Inquiry" - 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
Bearerauthentication in theAuthorizationheader. - 422 Validation Error: The submission payload does not
match the form's expected fields. Check the
detailsarray in the error response for specific field errors. - Duplicate submissions: Always use an
Idempotency-Keyheader when creating submissions. This ensures retries are safe.
Related Resources
- Webhooks Documentation — full event types, payloads, and signature verification
- API Overview — authentication, rate limits, and endpoints
- n8n Integration Guide — similar workflow automation with n8n
- Developer Hub