What is a Webhook?

Webhooks are a way for apps to communicate with each other. They allow you to send automated messages from one app to another when something happens. These messages contain information (known as payload) which are sent to a unique URL destination.

How can webhooks be used with Proof?

A webhook integration is an alternative method for capturing new conversions for your Proof notifications. This is an advanced option that should be implemented by a web developer.

Webhook setup instructions

Step 1 – Create a webhook endpoint

Inside the Proof app you can create a webhook endpoint – it's a unique URL where Proof will receive your webhook information.  Make sure to POST webhook messages to this url in JSON format.

  1. Edit a campaign
  2. Go to Step 2 'Capture'
  3. Click the 'Webhook' button
  4. Then click the 'Custom Webhook' button
  5. Here you'll see a page where you can create a webhook endpoint

Watch the setup video here

Step 2 – Setup your HTTP Post

Your data should be sent in the request body as "application/json" content. 

Please include the following fields in your webhook (case sensitive):

{
  "type": "custom",
  "email": "",
  "first_name": "",
  "city": "",
  "state": "",
  "country": "",

  "ip": ""
}

Please note that the following data will need to be matched with custom variables associated with your web platform (email , first_name , city , state ,country, ip ). 

The type field will always be matched to the custom variable.

Additional Information

Payload Type

You'll need to send as JSON format type

Required fields

 type and email are the only fields technically required, but we recommend you send all this information if you have it available.

Optional fields

first_name , city, state ,country, ip 

Webhook example (in PHP)

// Proof Webhook
$l_asJson = array(
'type' => 'custom',
'email' => $_POST['email'],
'first_name' => $_POST['first_name']
);
$l_sUrl = YOUR WEBOOK;
$l_sRequest = json_encode( $l_asJson );

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' ) );
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_URL, $l_sUrl );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $l_sRequest );

$l_sReturn = curl_exec($ch);
curl_close($ch);

Frequently Asked Questions

What if the webhook captures a prospects full name, but we only want to display their first name? Not a problem at all! Proof has a setting that will automatically strip the last name from the webhook if you send us the full name. That will ensure only the first name is being displayed.

Can I use a secure HTTPS webhook url in my POST requests?YES, you absolutely can and we recommend it.

Did this answer your question?