Detailed setup for connecting Form Forge to Zapier and Make (Integromat).
Zapier Setup
- Create a new Zap with a Webhooks by Zapier trigger (select “Catch Hook”)
- Zapier generates a URL:
https://hooks.zapier.com/hooks/catch/123456/abcdef/ - Paste this URL into the Form Forge “Webhook URL” field
- Submit a test form
- In Zapier, click “Test Trigger” to capture the data
- Map fields in your action step:
text
Name: {{fields__field_1__value}}
Email: {{fields__field_2__value}}
Message: {{fields__field_3__value}}Make (Integromat) Setup
- Create a new scenario with a Custom Webhook module
- Copy the generated URL (e.g.,
https://hook.eu1.make.com/abcdef123) - Paste into Form Forge settings and submit a test form
- Access fields:
fields.field_1.value
n8n Setup
- Create a Webhook node (set method to POST)
- Copy the production URL
- Access fields:
{{ $json.fields.field_1.value }}
json
{
"name": "{{ $json.fields.field_1.value }}",
"email": "{{ $json.fields.field_2.value }}",
"form": "{{ $json.form_title }}",
"submitted_at": "{{ $json.timestamp }}"
}Verifying Webhook Payloads
Add HMAC authentication on the sender side and verify on the receiver:
php
// Sender (Form Forge site)
add_filter( 'formforge_webhook_payload', function( $payload ) {
$secret = 'your-shared-secret';
$payload['signature'] = hash_hmac( 'sha256', wp_json_encode( $payload['fields'] ), $secret );
return $payload;
} );php
// Receiver (your custom endpoint)
$body = file_get_contents( 'php://input' );
$data = json_decode( $body, true );
$expected = hash_hmac( 'sha256', json_encode( $data['fields'] ), 'your-shared-secret' );
if ( ! hash_equals( $expected, $data['signature'] ) ) {
http_response_code( 401 );
die( 'Invalid signature' );
}—