Skip to content

Webhook Integration

Webhooks allow you to send form submission data to external services and custom endpoints. This guide explains how to set up and use webhooks with Qivra Form Builder.

Webhooks are automated messages sent from one app to another when something happens. With Qivra Form Builder, webhooks send data when:

  • A form is submitted
  • A specific condition is met
Use CaseDescription
Custom IntegrationConnect to any service with an API
Data SyncSend submissions to external databases
AutomationTrigger workflows in other tools
Custom ProcessingProcess data with your own code
  1. Go to Qivra Form Builder
  2. Click Settings in sidebar
  3. Go to Integrations > Webhooks
  1. Click Add Webhook
  2. Enter your endpoint URL
  3. Select trigger events
  4. Configure settings
  5. Click Save
  1. Click Send Test
  2. Verify receipt at your endpoint
  3. Check payload format

Your endpoint should:

  • Accept POST requests
  • Be publicly accessible
  • Use HTTPS (recommended)
  • Return 200 status on success
EventDescription
Form SubmittedWhen any form is submitted
Specific FormOnly selected forms
ConditionalBased on form values

For security, include a secret:

  1. Enter a secret key
  2. Verify in your endpoint
  3. Prevents unauthorized requests

Webhooks send JSON data:

{
"event": "form_submitted",
"timestamp": "2024-01-15T10:30:00Z",
"form": {
"id": "abc123",
"name": "Contact Form"
},
"submission": {
"id": "sub456",
"data": {
"name": "John Doe",
"email": "john@example.com",
"message": "Hello!"
},
"metadata": {
"ip_address": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"page_url": "https://store.com/contact"
}
},
"shop": {
"id": "shop123",
"domain": "store.myshopify.com"
}
}
FieldDescription
EventType of event
TimestampWhen it occurred
FormForm details
SubmissionAll field values
MetadataIP, user agent, URL
ShopStore information

Send different forms to different places:

  1. Open form in Form Builder
  2. Go to Settings > Integrations
  3. Add webhook URL
  4. Save form

Send only when conditions met:

IF "Order Value" > 1000
THEN trigger webhook to sales team

Connect to 5000+ apps:

  1. Create Zapier webhook trigger
  2. Copy webhook URL
  3. Add to Qivra
  4. Build automation in Zapier

Visual automation builder:

  1. Create scenario with webhook
  2. Copy webhook URL
  3. Add to Qivra
  4. Design workflow

Log submissions automatically:

  1. Use Zapier or Make
  2. Webhook triggers add row
  3. All submissions logged

Your own application:

  1. Create endpoint
  2. Parse JSON payload
  3. Process as needed

Check requests are from Qivra:

const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
return signature === expectedSignature;
}
PracticeWhy
Use HTTPSEncrypt data in transit
Verify signatureConfirm sender identity
Validate dataCheck payload structure
Rate limitPrevent abuse
Log requestsDebug issues

Your endpoint should:

ActionDetails
Return 200Acknowledge receipt
Respond quicklyWithin 5 seconds
Process asyncDon’t block response

Node.js example:

app.post('/webhook/qivra', (req, res) => {
// Verify signature
const signature = req.headers['x-qivra-signature'];
if (!verifySignature(req.body, signature, SECRET)) {
return res.status(401).send('Invalid signature');
}
// Acknowledge immediately
res.status(200).send('OK');
// Process asynchronously
processSubmission(req.body);
});

If webhook fails:

AttemptTiming
1stImmediately
2nd1 minute
3rd5 minutes
4th15 minutes
5th1 hour
CodeMeaning
2xxSuccess, don’t retry
4xxClient error, don’t retry
5xxServer error, retry
  1. Go to webhook settings
  2. View delivery history
  3. See status and response
IssueSolution
TimeoutRespond faster, process async
404 errorCheck URL is correct
401 errorVerify authentication
SSL errorCheck certificate

Use these to test:

  • RequestBin - Capture webhooks
  • ngrok - Expose local server
  • Postman - Send test requests
Play