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.

  1. In Zapier, search for KirokuForms and select it as your trigger or action app.
  2. Click Sign in to KirokuForms when prompted.
  3. Paste your API key. Zapier sends it to our test endpoint (GET /api/v1/zapier/auth/test) to verify it is valid.
  4. 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

  1. Choose a KirokuForms trigger (e.g., "New Submission").
  2. Zapier polls the trigger endpoint and returns your most recent items.
  3. Each item includes an id field. Zapier uses this to deduplicate — it only fires for items it hasn't seen before.
  4. Map the returned fields (form name, submission data, timestamps) into the next step of your Zap.

Example trigger response (New Submission):

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

  1. Add a KirokuForms "Create Submission" action to your Zap.
  2. 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.
  3. Map fields from your trigger into the submission fields. Field names must match the form's configured field names.
  4. Test the action — Zapier sends a real submission to KirokuForms.

Request body sent by the action:

Create Submission — Request Body
{
  "formId": "YOUR_FORM_ID",
  "name": "Jane Doe",
  "email": "jane@example.com",
  "message": "Submitted via Zapier"
}

Successful response (201):

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

Example Zaps

1. New Submission → Slack Notification

  1. Trigger: KirokuForms — New Submission
  2. Action: Slack — Send Channel Message
  3. Map formName, name, and email into the Slack message template.

2. Approved Submission → Google Sheets Row

  1. Trigger: KirokuForms — Submission Approved
  2. Action: Google Sheets — Create Spreadsheet Row
  3. Map submission fields to spreadsheet columns for a running log of approved submissions.

3. HubSpot Contact → KirokuForms Submission

  1. Trigger: HubSpot — New Contact
  2. Action: KirokuForms — Create Submission
  3. Push new CRM contacts into a KirokuForms onboarding form for review.

4. Rejected Submission → Follow-Up Email

  1. Trigger: KirokuForms — Submission Rejected
  2. Action: Gmail — Send Email
  3. 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:read scope.
  • 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 details array 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/submissions directly with an Idempotency-Key header.
  • Need faster than polling? Set up a KirokuForms webhook pointed at a Webhooks by Zapier catch hook for near-instant delivery.

Related Resources