Connect Zapier to KirokuForms
Use KirokuForms triggers and actions in Zapier to automate workflows across 6,000+ apps — no code required.
Prerequisites
- A Zapier account (free tier works for testing)
- A KirokuForms account with at least one active form
-
A KirokuForms API key — generate one from the
API Keys page with the scopes
your Zap needs:
-
submissions:read— required for all triggers -
submissions:write— required for the "Create Submission" action -
hitl:create— required for approve/reject actions
-
Step 1: Authentication
When you first add KirokuForms to a Zap, Zapier will ask you to authenticate. Enter your KirokuForms API key when prompted.
- In Zapier, search for KirokuForms and select it as your trigger or action app.
- Click Sign in to KirokuForms when prompted.
-
Paste your API key. Zapier sends it to our test endpoint (
GET /api/v1/zapier/auth/test) to verify it is valid. - If the test succeeds, your account is connected and ready to use.
Step 2: Set Up a Trigger
KirokuForms provides three polling triggers. Zapier checks for new data every 1–15 minutes depending on your plan.
| Trigger | Fires When | Scope Required |
|---|---|---|
| New Submission | A form receives a new submission | submissions:read |
| Submission Approved | A submission is approved via HITL | submissions:read |
| Submission Rejected | A submission is rejected via HITL | submissions:read |
How It Works
- Choose a KirokuForms trigger (e.g., "New Submission").
- Zapier polls the trigger endpoint and returns your most recent items.
-
Each item includes an
idfield. Zapier uses this to deduplicate — it only fires for items it hasn't seen before. - Map the returned fields (form name, submission data, timestamps) into the next step of your Zap.
Example trigger response (New Submission):
[
{
"id": "sub_def456uvw012",
"formId": "frm_abc123xyz789",
"formName": "Contact Form",
"createdAt": "2026-04-01T10:30:00Z",
"name": "Arthur Dent",
"email": "arthur.dent@example.com",
"message": "What is the answer to life?"
}
] Step 3: Set Up an Action
Actions let you push data into KirokuForms from other apps.
| Action | What It Does | Scope Required |
|---|---|---|
| Create Submission | Creates a new submission on a specified form | submissions:write |
Create Submission
- Add a KirokuForms "Create Submission" action to your Zap.
- Enter the Form ID of the form you want to submit to. You can find this on the form's settings page in the dashboard.
- Map fields from your trigger into the submission fields. Field names must match the form's configured field names.
- Test the action — Zapier sends a real submission to KirokuForms.
Request body sent by the action:
{
"formId": "YOUR_FORM_ID",
"name": "Jane Doe",
"email": "jane@example.com",
"message": "Submitted via Zapier"
} Successful response (201):
{
"success": true,
"data": {
"submissionId": "sub_xyz789abc456",
"taskId": null,
"timestamp": "2026-04-01T12:00:00Z"
},
"message": "Submission created"
} Example Zaps
1. New Submission → Slack Notification
- Trigger: KirokuForms — New Submission
- Action: Slack — Send Channel Message
-
Map
formName,name, andemailinto the Slack message template.
2. Approved Submission → Google Sheets Row
- Trigger: KirokuForms — Submission Approved
- Action: Google Sheets — Create Spreadsheet Row
- Map submission fields to spreadsheet columns for a running log of approved submissions.
3. HubSpot Contact → KirokuForms Submission
- Trigger: HubSpot — New Contact
- Action: KirokuForms — Create Submission
- Push new CRM contacts into a KirokuForms onboarding form for review.
4. Rejected Submission → Follow-Up Email
- Trigger: KirokuForms — Submission Rejected
- Action: Gmail — Send Email
- Automatically notify the applicant that their submission was not approved.
API Reference
The Zapier integration uses these KirokuForms API endpoints under the hood. You can also call them directly if you need custom logic.
| Endpoint | Method | Purpose |
|---|---|---|
/api/v1/zapier/auth/test | GET | Verify API key is valid |
/api/v1/zapier/triggers/submission-created | GET | Poll for new submissions |
/api/v1/zapier/triggers/submission-approved | GET | Poll for approved submissions |
/api/v1/zapier/triggers/submission-rejected | GET | Poll for rejected submissions |
/api/v1/zapier/actions/create-submission | POST | Create a new submission |
All endpoints require Authorization: Bearer YOUR_API_KEY.
See the API Overview for full details on authentication
and rate limits.
Troubleshooting
- Authentication fails ("Test Authentication" returns an error): Verify your API key is correct and hasn't been revoked. Copy the key again from the API Keys page and re-authenticate in Zapier.
- Trigger not firing: Zapier polling triggers check for
new data every 1–15 minutes. Submit a test form and wait for the next poll
cycle. Ensure your form is active and the API key has the
submissions:readscope. - 403 Forbidden on an action: Your API key is missing the
required scope. For "Create Submission" you need
submissions:write. Edit the key on the API Keys page. - 422 Validation Error on Create Submission: The field names
in your Zap don't match the form's configured fields. Check the
detailsarray in the error response for specifics. - Duplicate submissions: The Create Submission action does
not include an idempotency key by default. If you need deduplication, use
Zapier's Webhooks by Zapier action to call
POST /api/v1/submissionsdirectly with anIdempotency-Keyheader. - Need faster than polling? Set up a KirokuForms webhook pointed at a Webhooks by Zapier catch hook for near-instant delivery.
Related Resources
- Zapier Integration Overview — feature highlights and popular Zaps
- Webhooks Documentation — event types, payloads, and signature verification
- API Overview — authentication, rate limits, and all endpoints
- Make Integration Guide — similar workflow automation with Make
- n8n Integration Guide — self-hosted workflow automation with n8n
- Developer Hub