> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skyfree.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Whatsapp config

The platform supports **Meta Embedded Signup**, which allows users to directly connect their WhatsApp Business accounts through a guided onboarding flow without leaving your application.

This simplifies onboarding and removes the need for manual Meta Business configuration.

***

## What is Embedded Signup

Embedded Signup is a Meta-provided flow that enables users to:

* connect their WhatsApp Business account
* grant required permissions
* complete onboarding within your platform

This flow is powered by Meta (Facebook) and requires proper app configuration and approval.

***

## Why Embedded Signup is Used

Embedded Signup helps:

* reduce onboarding friction for users
* automate WhatsApp Business API connection
* eliminate manual Meta setup steps
* improve conversion for new users

***

## Configuration Requirements

Before using Embedded Signup, you must:

* create a Meta App in the Meta Developer Console
* enable WhatsApp Business Platform API
* configure App ID and App Secret
* generate configuration IDs (with and without catalog)
* set up webhook verification

***

## Meta App Verification (Mandatory)

To use Embedded Signup in production, your Meta app must be verified.

Verification ensures:

* your app is trusted by Meta
* permissions are approved
* users can connect their accounts without restrictions

## Step 1: Create Meta App

1. Go to: [https://developers.facebook.com/](https://developers.facebook.com/)
2. Click **My Apps → Create App**
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-106.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=0c1f78306f8dcb87f61ff4532f57aeb0" alt="Image" width="1428" height="690" data-path="images/image-106.png" />
   </Frame>
3. Enter:
   * App Name
   * Contact Email
     <Frame>
       <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-107.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=0a0914e7e5a6901d2ece1c53d33b612a" alt="Image" width="2140" height="910" data-path="images/image-107.png" />
     </Frame>
4. Select Use Case as **Connect with customers through WhatsApp**
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-108.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=3c05a548e66cc957ed389a9cf2c3b81c" alt="Image" width="1340" height="1150" data-path="images/image-108.png" />
   </Frame>
5. Select your verified Business Manager
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-109.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=3fd06a7b148c8eb77ab5c5a087220bc6" alt="Image" width="2060" height="1004" data-path="images/image-109.png" />
   </Frame>

## Step 2: Add Your Product

1. Inside your app dashboard homepage, scroll below to see
2. Click **Add Product**
3. Select **WhatsApp**, **Facebook Login for Business, Instagram, Messenger.**
4. Complete the basic setup
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/gD5fsE_Fmldf0VFl/images/image-58.png?fit=max&auto=format&n=gD5fsE_Fmldf0VFl&q=85&s=1e10f5659232328a417eb84b7b51b352" alt="Image" width="1253" height="624" data-path="images/image-58.png" />
   </Frame>

## Step 3: Configure App Basics

Go to **App Settings → Basic**

Make sure to add:

* App Name and Logo
* Privacy Policy URL
* Terms of Service URL
* App Domain (your platform domain)

Then go to: **Business Settings → Security Center**

<Frame>
  <img src="https://mintcdn.com/mail2skyfreegmailcom/gD5fsE_Fmldf0VFl/images/image-59.png?fit=max&auto=format&n=gD5fsE_Fmldf0VFl&q=85&s=2be24d7b808a52e95cd8f0845f906512" alt="Image" width="998" height="472" data-path="images/image-59.png" />
</Frame>

## Step 4: Configure Embedded Signup

1. Go to **Facebook Login for Business → Configuration**
2. Click **Create configuration**
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-110.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=459966c646f2221dd5f308a9e19b9b20" alt="Image" width="2042" height="1036" data-path="images/image-110.png" />
   </Frame>
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-111.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=375065097039ce692bc92da5723ab247" alt="Image" width="2222" height="650" data-path="images/image-111.png" />
   </Frame>
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-112.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=e7f1e5d7ad1244e3f6e226acd6a0aa1a" alt="Image" width="2136" height="854" data-path="images/image-112.png" />
   </Frame>
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-114.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=73ce7591c0a3b5f4be3c62e0b009bcb1" alt="Image" width="2134" height="906" data-path="images/image-114.png" />
   </Frame>
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-115.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=40361e4ef2b5e55c5ff74bde2508ef2a" alt="Image" width="2220" height="1092" data-path="images/image-115.png" />
   </Frame>
3. Save these with selection :
   * Configuration ID (with catalog) `business_management` `whatsapp_business_management` `whatsapp_business_messaging` `catalog_management`
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-116.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=0bd926e9f75b4c080b9746e7f10a5f35" alt="Image" width="2030" height="1252" data-path="images/image-116.png" />
   </Frame>
   * Configuration ID (without catalog) `business_management` `whatsapp_business_management` `whatsapp_business_messaging`
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-117.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=5d976d88e4c7105abb255f2399651da9" alt="Image" width="2044" height="1242" data-path="images/image-117.png" />
   </Frame>
4. Copy the below and add these values to your platform settings WhatsApp Config
   * App ID
   * App Secret
   * Configuration ID
   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/gD5fsE_Fmldf0VFl/images/image-60.png?fit=max&auto=format&n=gD5fsE_Fmldf0VFl&q=85&s=a16f8dc345cccf704c6b81e60428e1c7" alt="Image" width="1011" height="325" data-path="images/image-60.png" />
   </Frame>
5. Go to **Whatsap → Configuration** and add the webhook URL provided from platform to recive all incoming whatsapp messages and make sure you selected the events properly.

   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/gD5fsE_Fmldf0VFl/images/image-61.png?fit=max&auto=format&n=gD5fsE_Fmldf0VFl&q=85&s=3969a123af19f2aac670bf696f820a4b" alt="Image" width="1325" height="344" data-path="images/image-61.png" />
   </Frame>

   <Frame>
     <img src="https://mintcdn.com/mail2skyfreegmailcom/ryk-Q3R4Scrdaspf/images/image-119.png?fit=max&auto=format&n=ryk-Q3R4Scrdaspf&q=85&s=1c9e54399b9c0eb95eca197985a6d8c0" alt="Image" width="2788" height="1194" data-path="images/image-119.png" />
   </Frame>

## Step 5: Add Permissions (IMPORTANT)

Go to: **App Review → Permissions and Features**

Request for Advanced permissions:

* `business_management`
* `whatsapp_business_management`
* `whatsapp_business_messaging`
* `catalog_management`
* `email`
* `public_profile`
  <Frame>
    <img src="https://mintcdn.com/mail2skyfreegmailcom/alGVJ8L6SILQ8Fu1/images/image-118.png?fit=max&auto=format&n=alGVJ8L6SILQ8Fu1&q=85&s=479f5c6834e06b1b59f9260faecc4717" alt="Image" width="2106" height="838" data-path="images/image-118.png" />
  </Frame>

## Permission Justification (Copy-Paste Ready)

Use the below explanations when Meta asks for justification:

### business\_management

> Our platform allows businesses to connect and manage their WhatsApp Business accounts. This permission is required to access business-level assets and enable account linking via embedded signup.

### whatsapp\_business\_management

> This permission is required to manage WhatsApp Business account settings, phone numbers, and configurations after the user connects their account through our platform.

### whatsapp\_business\_messaging

> Our platform enables users to send and receive WhatsApp messages, including automated notifications, campaigns, and customer conversations. This permission is essential for message delivery and communication workflows.

### catalog\_management

> This permission is used for businesses that utilize product catalogs. It allows syncing and managing catalog items for use in WhatsApp commerce features such as product messages and interactive flows.

### email

> We use this permission to identify the user’s account and ensure proper mapping between their Meta account and our platform.

### public\_profile

> This permission is required to access basic profile information to create and manage user sessions securely within our platform.

## Step 6: Complete App Review Sections

Go to: **App Review → Settings**

Complete all sections:

* Branding
* Audience
* Clients
* Data Access
* Verification

All sections must be completed before submission.

## Step 7: Submit Screencast Video

You must upload a video showing:

* Login into your platform
* Starting Embedded Signup
* Connecting WhatsApp account
* Accepting permissions
* Completing onboarding
* Sending or receiving messages

## Step 8: Submit for Review

1. Go to **App Review**
2. Submit requested permissions
3. Wait for Meta approval

***

## Important Notes

* App must be in **Live Mode** before production use
* Missing permissions = rejection
* Incomplete video = rejection
* Business verification is mandatory

> ⚠️ **Need Help?**\
> Meta verification can be complex and time-consuming.\
> If you need assistance, you can contact our support team.\
> We provide verification setup as an add-on service.

***

## Twilio TURN Configuration (WhatsApp Calling)

To enable WhatsApp calling functionality in the platform, a TURN (Traversal Using Relays around NAT) server is required. TURN ensures stable voice connectivity, especially in restricted or NAT-based network environments.

We recommend using **Twilio TURN services** for reliable performance.

## Why TURN is Required

WhatsApp calling relies on WebRTC technology, which may fail in certain network conditions such as:

* firewalls blocking direct connections
* strict NAT environments
* corporate or restricted networks

TURN acts as a relay server to ensure calls are successfully connected even in these scenarios.

## How It Works

* Twilio provides TURN credentials (temporary or generated)
* These credentials are used by the platform to establish call connections
* The TURN server relays audio data between users when direct connection fails

### Step 1: Create Twilio Account

1. Go to: [https://www.twilio.com/](https://www.twilio.com/)
2. Sign up or log in to your account
3. Navigate to **Twilio Console Dashboard**
4. Copy the following: **Account SID & Auth Token,** these will be used to authenticate TURN requests.
5. Add the following details in your platform settings: **Twilio Account SID mTwilio Auth Token**
6. Once added:Click **Test TURN**
7. The platform will automatically generate:
   * TURN URL
   * TURN Username
   * TURN Credential
     <Frame>
       <img src="https://mintcdn.com/mail2skyfreegmailcom/gD5fsE_Fmldf0VFl/images/image-62.png?fit=max&auto=format&n=gD5fsE_Fmldf0VFl&q=85&s=38aab54bf27fc1090873e2d633ef429e" alt="Image" width="1328" height="334" data-path="images/image-62.png" />
     </Frame>

***

## Meta Webhook Relay

Meta Webhook Relay allows you to forward incoming WhatsApp (Meta) webhook events to another external endpoint without modifying your primary webhook configuration.

This is useful when you want to duplicate or redirect webhook data to additional systems such as automation tools, CRMs, or custom APIs.

## What this does

* receives webhook events from Meta (WhatsApp Cloud API)
* forwards the **raw payload** to a secondary webhook URL
* preserves original request structure and headers
* enables parallel processing of webhook events

## Typical Use Cases

* send WhatsApp events to external automation platforms
* integrate with third-party CRMs or analytics systems
* duplicate webhook data for logging or monitoring
* trigger workflows outside the main platform

## How It Works

1. Meta sends webhook events to your primary webhook
2. The platform captures the event
3. If relay is enabled, the same payload is forwarded to your configured URL
4. The target system receives the webhook as a standard POST request

## Configuration Fields

* **Forward URL**\
  The external endpoint where webhook events will be sent
* **Verify Token**\
  Used only for webhook verification (not for forwarded events)
* **Relay Toggle**\
  Enables or disables webhook forwarding
* **Relay Scope**\
  Choose what to forward:
  * Messages
  * Status updates
  * Account updates

## Important Notes

> ⚠️ **Credit Consumption Warning**

Each forwarded webhook event will consume platform credits.

* Every incoming event = **1 credit used (for forwarding)**
* High message volume can increase credit usage significantly
* Monitor usage if relay is enabled in production

## Best Practices

* Enable relay only when required
* Filter relay scope to avoid unnecessary events
* Use a reliable external webhook endpoint
* Monitor success/failure logs regularly

## Testing

You can validate your setup using:

* **Test Verification** → checks webhook validation flow
* **Send Meta-Style Sample** → sends a sample payload to your endpoint

## When to Use

Use Meta Webhook Relay when:

* you need multi-system integrations
* you want to extend platform functionality externally
* you are building advanced automation pipelines

## Support

> ⚠️ If webhook forwarding is not working, verify your endpoint response and ensure it accepts POST requests properly.
