Popin Webhook Integration Guide

Popin Webhook Integration Guide

Popin’s webhook functionality allows you to receive real-time notifications about events happening in your Popin widget.
This guide explains how to set up webhooks and describes the event payloads you can expect to receive.


Setting Up Webhooks

  1. Log in to your Popin Dashboard.

  2. Navigate to Settings > Developers > Webhook.

  3. Click Setup.

  4. Enter your Webhook URL where Popin should send event notifications.

  5. Use an API key for authentication, or '.' (dot) if an API key is not available.

If configured, the API key will be included in the request header as:

X-API-KEY: your_api_key
  1. Save your settings.

Once configured, Popin will POST event data to your specified URL whenever supported events occur.


Supported Events and Payloads

1. Call Successful

Event name: popin_call_successful
Description: Triggered when a call is successfully completed.

{
  "event": "popin_call_successful",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "call_duration": "string",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "product": "string",
    "meta": "object"
  }
}

2. Call Missed

Event name: popin_call_missed
Description: Triggered when a call is missed.

{
  "event": "popin_call_missed",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "url": "string",
    "product": "string",
    "meta": "object"
  }
}

3. Call Abandoned

Event name: popin_call_abandoned
Description: Triggered when a call is abandoned before being answered.

{
  "event": "popin_call_abandoned",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "url": "string",
    "product": "string",
    "meta": "object"
  }
}

4. Call Remark Added

Event name: popin_call_remark_added
Description: Triggered when a remark is added to a call.

{
  "event": "popin_call_remark_added",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "call_duration": "string",
    "url": "string",
    "remark": "string",
    "meta": "object"
  }
}

5. Scheduled Call Created

Event name: popin_scheduled_created
Description: Triggered when a call is scheduled.

{
  "event": "popin_scheduled_created",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "scheduled_time": "string (format: h:i A)",
    "scheduled_date": "string (format: d-M-Y)",
    "scheduled_time_local": "string (format: h:i A)",
    "scheduled_date_local": "string (format: d-M-Y)",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "product": "string",
    "meta": "object"
  }
}

6. Missed Call Invited

Event name: popin_missed_notification
Description: Triggered when a user is notified about a missed call.

{
  "event": "popin_missed_notification",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "meta": "object"
  }
}

7. Scheduled Call Notified

Event name: popin_scheduled_notification
Description: Triggered when a user is notified about an upcoming scheduled call.

{
  "event": "popin_scheduled_notification",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "scheduled_time": "string (format: h:i A)",
    "scheduled_date": "string (format: d-M-Y)",
    "scheduled_time_local": "string (format: h:i A)",
    "scheduled_date_local": "string (format: d-M-Y)",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "meta": "object"
  }
}

8. Scheduled Call Pre-Notified

Event name: popin_prescheduled_notification
Description: Triggered when a user receives a pre-notification about an upcoming scheduled call.

{
  "event": "popin_prescheduled_notification",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "scheduled_time": "string (format: h:i A)",
    "scheduled_date": "string (format: d-M-Y)",
    "scheduled_time_local": "string (format: h:i A)",
    "scheduled_date_local": "string (format: d-M-Y)",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "meta": "object"
  }
}

9. User Captured

Event name: popin_user_captured
Description: Triggered when user details are captured.

{
  "event": "popin_user_captured",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "customer_email": "string",
    "customer_country_code": "string",
    "customer_phone_number": "string",
    "extra": "object",
    "meta": "object"
  }
}

10. Call Rated

Event name: popin_call_rated
Description: Triggered when a call is rated.

{
  "event": "popin_call_rated",
  "user_id": "string",
  "email": "string",
  "country_code": "string",
  "phone_number": "string",
  "full_phone_number": "string",
  "timestamp": "string",
  "properties": {
    "customer_name": "string",
    "rating": "integer",
    "comments": "string",
    "url": "string",
    "agent_name": "string",
    "agent_email": "string",
    "meta": "object"
  }
}

11. Call Guest Connected

Event name: popin_call_guest_connected
Description: Triggered when a user or agent joins the ongoing call.

{
 "event": "popin_call_guest_connected",
  "guest_type": "user/agent",
  "guest_id":"string",(Only if "guest_type": "user")
  "guest_agent_name":"string",(Only if "guest_type": "agent")
  "guest_agent_email":"string",(Only if "guest_type": "agent")
  "timestamp":"string",
   "properties": {
    "url": "string",
    "agent_name": "integer",
    "agent_email": "string",
    "url": "string",
    "customer_name": "string",
    "customer_email":"string",
    "customer_email":"string",
    "customer_country_code":"string",
    "customer_phone_number":"string",
    "full_phone_number":"string",
    "meta":"object"
  }
}

Notes

  • meta and extra fields are reserved for additional contextual data.

  • All payloads include user identifiers (user_id, email, phone_number) for mapping with your system.

  • Timestamps are formatted as per event type (e.g., d-M-Y, h:i A).


Best Practices

  • Verify the source: Validate incoming webhooks are from Popin by checking the IP or using an API key.

  • Handle duplicates: Implement idempotency in your webhook handler to safely process repeated events.

  • Respond quickly: Respond within a few seconds to prevent timeouts.

  • Error handling: Implement retry logic for failed deliveries.


Troubleshooting

If you’re not receiving webhook notifications:

  1. Verify your webhook URL in the Popin dashboard.

  2. Check your server logs for incoming requests.

  3. Ensure your endpoint is publicly accessible.

  4. Review firewall/security settings that may block requests.

For further assistance, please contact Popin Support.

    • Related Articles

    • Popin Zapier Integration Guide

      Popin Zapier App Integration Overview The Popin Zapier App enables you to integrate Popin with thousands of other applications through Zapier. This guide provides instructions on how to connect Popin to Zapier, configure triggers, and use API ...
    • Popin - Freshsales Integration Guide

      Introduction Integrating Popin with Freshsales allows you to sync leads and activities seamlessly between the two platforms. Follow this guide to set up the integration quickly. Prerequisites You must have an active Popin account. You must have an ...
    • Passing Campaign Data via Popin & Webhook Meta

      Popin supports passing campaign and tracking data (such as UTM parameters and custom identifiers) when opening the widget. This data is automatically included in webhook payloads under the properties.meta object, ensuring consistency across all ...
    • How to Integrate WebEngage with Popin

      This guide walks you through integrating Popin with WebEngage to ensure all user interactions, lead activity, and call events are automatically synced for enhanced marketing and automation workflows. 🔧 Integration Steps Step 1: Get WebEngage API ...
    • How to integrate your custom CRM on Popin?

      Guide for API Integration with Popin Welcome to the integration guide for the Popin! To enable seamless communication between your e-commerce website and our system, you need to provide two APIs: Lead Submission API - This API will allow us to pass ...