Home > database >  Typeform WordPress Integration
Typeform WordPress Integration

Time:10-26

I have a form in Typeform, So if an user enter his details the details should be send via webhook api and it should be stored in my Wordpress website that's what I'm looking for . 1st doing API so I'm looking for some code or functions to get datas from the Form url of the typeform. Without Plugin so I want to learn through codes ..

CodePudding user response:

API endpoint

First you need to build your own API endpoint to receive Typeform Webhook payload. I assume you will be building this in PHP since you are using Wordpress.

You can create a webhook.php file in your Wordpress installation, eg. in /wp-content directory:

<?php
$headers = getallheaders();
$header_signature = $headers["Typeform-Signature"];
$secret = "abc123";  // replace with a unique webhook secret

$payload = @file_get_contents("php://input");
$hashed_payload = hash_hmac("sha256", $payload, $secret, true);
$base64encoded = "sha256=".base64_encode($hashed_payload);

if ($header_signature !== $base64encoded) {
  die("invalid signature");
}

// now you can process webhook payload
// see https://developer.typeform.com/webhooks/example-payload/
$data = json_decode($payload);
$definition = $data->form_response->definition;  // form definition
$answers = $data->form_response->answers;        // respondent answers

// you could save it to your wordpress database
// code below depends on what questions you have in your typeform
require_once "../wp-load.php";
global $wpdb; // see https://developer.wordpress.org/reference/classes/wpdb/
$wpdb->insert('my_typeform_data', array(
    'name'         => $answers[0]->text,
    'phone_number' => $answers[1]->phone_number
));

Setup webhook

Now you can setup webhook for your typeform:

  • click Connect in top menu
  • click Webhooks
  • click Click Add a webhook button
  • enter URL to your webhook script, eg. https://example.com/wp-content/webhook.php
  • click Save webhook button

To secure your webhook:

  • click Edit button next to your webhook
  • enter custom secret (see the $secret variable above)

For testing:

  • click the View deliveries button next to your webhook
  • click Send test request button
  • Related