Clienteling Setup API (0.0.1)
Download OpenAPI specification:Download
Use this resource to set up retailers and stores for clienteling in the NewStore platform. For more information, see how clienteling is used via NewStore Associate App.
Represents a new configuration created for retailers to enable clienteling in stores in their business.
Enable clienteling configuration for retailer
Configures clienteling capabilities for an existing retailer. Once configured, the retailer can start clienteling operations in stores in their business.
The ecom_link property contains the link to the e-commerce website
of the retailer, which is included along with product recommendations sent to the
customer via clienteling messages.
Authorizations:
header Parameters
| Tenant required | string^[a-z0-9][a-z0-9-]{0,62}$ The name of the tenant making the request. |
Request Body schema: application/json
| ecom_link required | string non-empty .*\S.* The link to the retailer's website. Must not be blank. |
Responses
Request samples
- Payload
{
}Response samples
- 400
- 403
- 409
- 500
{- "request_id": "ckdk5bwy00009ztlo16062bce",
- "message": "Something is wrong with the request."
}Provides read-only onboarding progress for a retailer, including Twilio, templates, stores, and country-level compliance.
Retrieve clienteling onboarding status for retailer
Returns a consolidated view of the retailer's onboarding progress, including Twilio connectivity, SMS disclaimer templates, store coverage, and per-country compliance steps.
Authorizations:
header Parameters
| Tenant required | string^[a-z0-9][a-z0-9-]{0,62}$ The name of the tenant making the request. |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "tenant": "dodici",
- "onboarded": true,
- "onboarded_at": "2019-08-24T14:15:22Z",
- "twilio": {
- "connected": true,
- "sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
- "call_forwarding": {
- "sid": "string",
- "name": "string"
}
}, - "opt_in": {
- "exists": true,
- "id": "string",
- "body": "string"
}, - "countries": [
- {
- "country_code": "string",
- "stores": 0,
- "number_availability": {
- "supported": true
}, - "regulatory_bundle": {
- "required": true,
- "status": "string",
- "bundle_id": "string",
- "uploads": [
- {
- "sid": "string",
- "name": "string",
- "status": "string",
- "created_at": "string",
- "updated_at": "string"
}
]
}, - "trusted_product": {
- "required": true,
- "status": "string",
- "product_id": "string",
- "uploads": [
- {
- "sid": "string",
- "name": "string",
- "status": "string",
- "created_at": "string",
- "updated_at": "string"
}
]
}, - "actions": [
- "string"
]
}
], - "stores": [
- {
- "id": "string",
- "name": "string",
- "country_code": "string",
- "phone_number": "string",
- "channels": {
- "sms": {
- "status": "onboarded"
}, - "whatsapp": {
- "sid": "string",
- "status": "not_onboarded",
- "waba": "string",
- "quality_rating": "string",
- "messaging_limit": "string"
}
}
}
]
}Contains endpoints that you can use to enable clienteling at specified stores for the retailer.
Note: Ensure that you have the phone number that you intend to use for clienteling conversations in the store.
Onboard store
Onboard a new store to clienteling.
Authorizations:
path Parameters
| store_id required | string The identifier of the store. |
header Parameters
| Tenant required | string The name of the tenant making the request. |
Request Body schema: application/json
| kind | string Enum: "" "dedicated" Standalone store onboarding. Empty / omitted is treated as |
| phone_number required | string^\+[0-9]{8,15}$ The phone number that will be used to onboard the store. |
| bundle_sid | string Regulatory Bundle ID from Twilio (countries other than US/CA). Must
be paired with |
| address_sid | string Address ID from Twilio. Must be paired with |
| sender_group_id | string Value: "" Must be omitted or empty for dedicated store onboarding. |
| phone_number_already_purchased | boolean Default: false Skip the Twilio purchase step and only associate the supplied
|
Responses
Request samples
- Payload
{- "kind": "join_existing_group",
- "sender_group_id": "shared-eu",
- "phone_number": "+1234567890",
- "bundle_sid": "BU5e9d0932167fd19bfef4000e0fb15e15",
- "address_sid": "AD5e9d0932167fd19bfef4000e0fb15e15",
- "phone_number_already_purchased": false
}Response samples
- 400
- 403
- 404
- 500
{- "request_id": "ckdk5bwy00009ztlo16062bce",
- "message": "Something is wrong with the request."
}Onboard a store to WhatsApp
Onboard a new store to WhatsApp.
Authorizations:
path Parameters
| store_id required | string The identifier of the store. |
header Parameters
| Tenant required | string The name of the tenant making the request. |
Request Body schema: application/json
| waba_id | string WhatsApp Business Account ID to link to the store. Optional when the store joins a sender group that already has a WABA (then inherited). |
| profile_name required | string The name of the WhatsApp profile that will be shown to customers when they interact with the store via WhatsApp. |
| profile_email | string Email address that should appear WhatsApp profile |
| profile_website | string Website URL that should appear on the WhatsApp profile |
| profile_picture | string URL to a logo used as contact image on WhatsApp profile |
| profile_description | string A description of the WhatsApp profile |
| profile_about | string The 'about' text shown on the WhatsApp profile. |
| profile_address | string Business address shown on the WhatsApp profile. |
| whatsapp_phone_number | string^\+[0-9]{8,15}$ Optional dedicated WhatsApp number in E.164 format. When set, this number is purchased (if not already owned) and registered as the WhatsApp sender instead of the store's SMS number. |
| bundle_sid | string Regulatory Bundle ID from Twilio, used only when purchasing a
|
| address_sid | string Address ID from Twilio, used only when purchasing a
|
Responses
Request samples
- Payload
{- "waba_id": "1234567890",
- "profile_name": "Dodici Potsdamer Platz by NewStore",
- "profile_email": "potsdamer-platz@newstore.com",
- "profile_description": "Giovanna Dodici is a super cool fashion brand.",
- "profile_about": "Open Mon-Sat, 10:00-20:00.",
- "profile_address": "Potsdamer Platz 1, 10785 Berlin",
- "whatsapp_phone_number": "+1234567890",
- "bundle_sid": "BU5e9d0932167fd19bfef4000e0fb15e15",
- "address_sid": "AD5e9d0932167fd19bfef4000e0fb15e15"
}Response samples
- 400
- 403
- 500
{- "request_id": "ckdk5bwy00009ztlo16062bce",
- "message": "Something is wrong with the request."
}Represents the phone numbers that are available to be purchased for the store, which can then be used to configure clienteling operations in the store.
See onboarding stores for more information.
List available phone numbers
Retrieves a list of available phone numbers that can be used to enable clienteling operations in a store. The available phone numbers are based on store configuration for the specified store (such as the country code, geography and landline extension).
Once a number has been used to onboard a store, it will be used for clienteling operations in the store.
Authorizations:
path Parameters
| store_id required | string The identifier of the store. |
header Parameters
| Tenant required | string The name of the tenant making the request. |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
[- {
- "phone_number": "+1234567890",
- "locality": "Jacksonville",
- "region": "FL"
}
]Represents the addresses that are registered with Twilio for the store's country, which can then be used when purchasing phone numbers for countries that require an address.
List addresses
Retrieves a list of addresses registered with Twilio for the store's country. These addresses can be used when purchasing phone numbers for countries that require an address.
The addresses are filtered by the ISO country code of the specified store.
Authorizations:
path Parameters
| store_id required | string The identifier of the store. |
header Parameters
| Tenant required | string The name of the tenant making the request. |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
[- {
- "sid": "AD5e9d0932167fd19bfef4000e0fb15e15",
- "friendly_name": "Main Office",
- "street": "123 Main St",
- "street_secondary": "Suite 100",
- "city": "San Francisco",
- "region": "CA",
- "postal_code": "94105",
- "iso_country": "US"
}
]Represents the regulatory bundles that are registered with Twilio for the store's country, which can then be used when purchasing phone numbers for countries that require regulatory compliance.
List regulatory bundles
Retrieves a list of regulatory bundles registered with Twilio for the store's country. These regulatory bundles can be used when purchasing phone numbers for countries that require regulatory compliance.
The regulatory bundles are filtered by the ISO country code of the specified store.
Authorizations:
path Parameters
| store_id required | string The identifier of the store. |
header Parameters
| Tenant required | string The name of the tenant making the request. |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
[- {
- "sid": "BU5e9d0932167fd19bfef4000e0fb15e15",
- "friendly_name": "Germany Bundle",
- "address_sid": "AD5e9d0932167fd19bfef4000e0fb15e15"
}
]Represents the trust products that are registered with Twilio, which can then be used when purchasing phone numbers for countries that require trust verification.
List trust products
Retrieves a list of trust products registered with Twilio. These trust products can be used when purchasing phone numbers for countries that require trust verification.
Authorizations:
header Parameters
| Tenant required | string The name of the tenant making the request. |
Responses
Response samples
- 200
- 400
- 403
- 500
[- {
- "sid": "BU5e9d0932167fd19bfef4000e0fb15e15",
- "friendly_name": "My Trust Product"
}
]Generates a WhatsApp profile picture upload URL
Creates an upload URL that can be used to upload a WhatsApp profile picture to S3. The file will be publicly readable.
Authorizations:
header Parameters
| Tenant required | string The name of the tenant making the request. |
Request Body schema: application/json
| file_name required | string Profile picture file name. The file name must have a |
Responses
Request samples
- Payload
{- "file_name": "profile.png"
}Response samples
- 200
- 400
- 403
- 500