Host Your Own Embedded Signup

For even more personalization, if you are an approved Meta Tech Provider, you can also host your own Embedded Signup flow.

Requirements

Tech Provider registration and approved Solution

To enable this option, you must be a Meta approved Tech Provider and have a live Solution with 360dialog.

See more details in our documentation.

Tech Provider Program

Technical capacity to host and manage your own Embedded Signup

You will also need to be able to host and manage your own Embedded Signup script, which requires technical knowledge. We will not be able to support you on troubleshooting your own Embedded Signup.

Request Advanced Access for public_profile permission

To host your own embedded signup, you must add extra permission for the process to work smoothly. In the Meta for Developers App dashboard > navigate to your App Review > Permissions > Find the ‘public_profile’ permission and request advanced access.

Ensure advanced access is granted before configuring the ES.

Cloud API enabled

All numbers will be automatically onboarded on Cloud API.

Set Partner Hub Webhook URL and listen to Webhook Events

See instructions here.

Building the Integration

Step 1: Create or retrieve a Client Account

In order to later submit the number, you need to either retrieve an existing client_id or create a new client instance through our Partner API using the endpoint below. Make sure to store the Client ID of each client within your database, since it will be required afterwards. Alternatively, you can also retrieve it with this endpoint.

Create client account

POST https://hub.360dialog.io/api/v2/partners/{partner_id}/account_sharing/clients

Request example curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/account_sharing/clients --header 'Accept: application/json' --header 'Authorization: Bearer 123' --header 'Content-Type: application/json' --data '{ "name": "string", "email": "string", "user_name": "string"}'

Request Body

Name
Type
Description

name*

string

Name of the client user

email*

string

Email address of the client user.

user_name*

string

Name of the client user.

{
  "id": "string", // ID of the Client
  "created_at": "string",
  "created_by": {
    "user_id": "string",
    "user_name": "string"
  },
  "modified_at": "string",
  "modified_by": {
    "user_id": "string",
    "user_name": "string"
  }
}

Step 2: Surface Embedded Signup to client and fetch information

When the Embedded Signup is completed by the client, you can use the code received in the payload to fetch detailed WABA information. See more here and here.

Step 3: Connect Client account to registered Phone Number

Use the endpoint below to submit the phone number/channel to 360dialog records. If the number was successfully onboarded via self-hosted Embedded Signup and the attached client_id matches the user data in 360dialog records, the onboarding flow end by redirecting the Client to the Partner Redirect URL set.

Submit channel/number created via self-hosted Embedded Signup

POST https://hub.360dialog.io/api/v2/partners/{partner_id}/account_sharing/numbers

Request example curl --request POST --url https://hub.360dialog.io/api/v2/partners/partner_id/account_sharing/numbers --header 'Accept: application/json' --header 'Authorization: Bearer 123' --header 'Content-Type: application/json' --data '{ "solution_id": "string", "waba_external_id": "string", "waba_business_id": "string", "client_id": "string", "tier": "string" }'

Path Parameters

Name
Type
Description

partner_id*

string

Request Body

Name
Type
Description

solution_id*

string

Your approved Solution ID

waba_business_id

string

The Client's Business Manager ID

waba_external_id*

string

The WABA ID returned through the ES callback.

client_id

string

The ID of the client

tier

string

Can be used to set the default pricing plan for the number to be added.

Will only work for partners enabled for tiered pricing. *If you are not sure of you billing plan, please reach out to our Support Team.

Clients on partners with client payment will be able to change the pre-selected plan.

Allowed values: regular, premium

Default: regular

Use the tier parameter to set the pricing plan. If no value is provided, numbers will be connected with regular pricing plan as default.

{
  "solution_id": "string",
  "waba_external_id": "string",
  "waba_business_id": "string",
  "client_id": "string",
  "tier": "regular",
  "message": "string"
}

If the process is successful message field will return Success. Please wait, your number is onboarding. If not, the usual error response will be returned.

Step 4: Create API key to start messaging

When the number is fully live, you will receive the Channel Live Webhook Event.

You should be able to generate an API Key and connect it to your integration to start messaging with this phone number by default.

See Partner Permissions for details.

Last updated

Was this helpful?