Difference between revisions of "PEC-DC/Current/DCPEGuide/ProvisionSMS"

From Genesys Documentation
Jump to: navigation, search
m (Text replacement - "Genesys Engage" to "Genesys Multicloud CX")
(Published)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Article
 
{{Article
 
|Standalone=No
 
|Standalone=No
|DisplayName=Provision SMS
+
|DisplayName=Setting up Integration for Inbound and Outbound SMS
|TocName=Provision SMS
+
|TocName=Setting up Integration for Inbound and Outbound SMS
|Context=Learn how to enable SMS media and outbound email campaigns for Digital Channels.
+
|Context=Learn how to enable SMS connectivity for inbound conversations and outbound campaigns.
 
|ComingSoon=No
 
|ComingSoon=No
 
|Platform=GenesysEngage-onpremises
 
|Platform=GenesysEngage-onpremises
Line 9: Line 9:
 
|Section={{Section
 
|Section={{Section
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext={{NoteFormat|“Nexus” is the simplified name we use for the Digital Channels application and nodes, so you’ll see that name referenced throughout this document.|}}
+
|structuredtext={{NoteFormat|“Nexus” is the simplified name we use for the Digital Channels application and APIs, so you’ll see that name referenced in this document.|}}
Digital Channels can handle SMS media and outbound email campaigns using either Genesys Messaging Aggregation from Genesys Cloud or a third-party aggregator through a custom gateway.  
+
Genesys Multicloud CX supports SMS interactions using one of these three options: built-in connector to Kaleyra SMS text messaging service, a custom gateway built with a third-party messaging API, or a built-in connector to Genesys Cloud CX SMS aggregation service.[[File:Digitalchannels provision sms diagram.png]]After completing the setup steps on this page, you will be able to:
  
See the network diagram below for details.
+
*Receive SMS messages from your customers on your corporate short code or long code and allow a Designer application or agent to respond to them.
 +
*Send SMS messages in your outbound campaigns through CX Contact.
  
[[File:SMS Email Integration Nexus.jpg]]After completing the setup steps on this page, you will be able to:
+
To get started, complete the configuration steps for '''one''' of the following scenarios:
  
*Receive SMS messages from your consumers on your corporate numbers and allow a Designer application or agent to respond to them.
+
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=enableKaleyra|display text=Set up Digital Channels to use Kaleyra SMS}} OR
*Use outgoing SMS and email messages in your outbound campaigns (through CX Contact).
+
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=customgateway|display text=Set up Digital Channels to use a Custom Gateway}} OR
 +
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=enableMA|display text=Set up Digital Channels to use Genesys Cloud CX SMS Agreegation}}
 +
|Status=No
 +
}}{{Section
 +
|sectionHeading=Option 1: Set up Digital Channels to use Kaleyra SMS
 +
|anchor=enableKaleyra
 +
|alignment=Vertical
 +
|structuredtext=Complete the steps in this section to set up Digital Channels to use the built-in connector to Kaleyra.
 +
 
 +
#Review the {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=KaleyraPrerequisites|display text=prerequisites}} table.
 +
#Use the Digital Channels provisioning API to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=KaleyraIntegration|display text=create Digital Channels services definition}}.
 +
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=KaleyraPhoneNumbers|display text=Manage and provision sender IDs}}.
 +
{{AnchorDiv|KaleyraPrerequisites}}<div class="pdf-table-landscape">
 +
===Prerequisites===
 +
Review the '''Prerequisites''' table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.
 +
{{{!}} class="wikitable"
 +
{{!}}+Prerequisites
 +
!Parameter
 +
!Variable
 +
!Type
 +
!Example
 +
!Notes
 +
{{!}}-
 +
{{!}}Company's sender id
 +
{{!}}$tfn
 +
{{!}}string
 +
{{!}}1650466114
 +
{{!}}The sender id can be a short code (5 digits) or a long code (10 digits).
 +
{{!}}-
 +
{{!}}Contact Center Id
 +
{{!}}$ccid
 +
{{!}} colspan="1"{{!}}UUID string<br />
 +
{{!}}45acae06-6b7c-4f97-9c76-471cb5c21bf7
 +
{{!}}This value comes from your Web Services and Applications deployment.
 +
{{!}}-
 +
{{!}}Digital Channels URL
 +
{{!}}$baseURL
 +
{{!}}string
 +
{{!}}<nowiki>http://digital.example.com</nowiki>
 +
{{!}}Publicly available URL for Digital Channels API
 +
{{!}}-
 +
{{!}}Kaleyra API URL
 +
{{!}}$kaleyraURL
 +
{{!}}string
 +
{{!}}<nowiki>http://directtext.mgage.com</nowiki>
 +
{{!}}URL for Kaleyra SMS API.
 +
{{!}}-
 +
{{!}}Kaleyra user name
 +
{{!}}$kaleyraUserName
 +
{{!}}string
 +
{{!}}Secret
 +
{{!}}The username for an account with permission to send SMS.
 +
{{!}}-
 +
{{!}}Kaleyra password
 +
{{!}}$kaleyraPassword
 +
{{!}}string
 +
{{!}}Secret
 +
{{!}}The password for an account with permission to send SMS.
 +
{{!}}}</div>{{AnchorDiv|KaleyraIntegration}}
 +
===Create Digital Channels services definitions===
 +
Enable Digital Channels to use the built-in connector to Kaleyra SMS services (Kaleyra was formerly known as mGage). You must configure the following services in Digital Channels within your tenant:
  
To get started, complete the configuration steps for '''one''' of the following scenarios:
+
*SMS - Enables SMS media for the tenant and selects Kaleyra as the default provider.
 +
*mGageSMS - Integrates your Genesys Multicloud CX tenant to Kaleyra for SMS communication.
 +
{{NoteFormat|Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. Note: You must create these services once per tenant.|}}
 +
Create the '''SMS''' service:<syntaxhighlight lang="text">
 +
curl -X POST \
 +
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
 +
  -H 'Content-Type: application/json' \
 +
  -H 'x-api-key: $apiKey' \
 +
  -H 'x-ccid: $ccid' \
 +
  -d '{
 +
    "url" : "N/A",
 +
    "data" : { "provider": "mGage" },
 +
    "secret": {}
 +
}'
 +
</syntaxhighlight>Create the '''mGageSMS''' service:<syntaxhighlight lang="text">
 +
curl -X POST \
 +
  $nexusURL/nexus/v3/provisioning/services/$ccid/mGageSMS \
 +
  -H 'Content-Type: application/json' \
 +
  -H 'x-api-key: $apiKey' \
 +
  -H 'x-ccid: $ccid' \
 +
  -d '{
 +
        "url": "$kaleyraURL"
 +
        "data": { },
 +
        "secret": {         
 +
            "username": "$kaleyraUserName",
 +
            "password": "$kaleyraPassword"        } }'
 +
</syntaxhighlight>
  
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=enableMA|display text=Set up Digital Channels to use Genesys Messaging Aggregation}}
+
===Adding sender IDs to Kaleyra===
*:OR
+
If you need to add a new short code or text-enabled phone number, contact your Genesys representative to complete this step.{{AnchorDiv|KaleyraPhoneNumbers}}
*{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=customgateway|display text=Set up Digital Channels to use a custom gateway}}
+
===Manage and provision sender IDs===
 +
Provision {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=provisionnumbers|display text=sender IDs}} in Digital Channels.
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Set up Digital Channels to use Genesys Messaging Aggregation
+
|sectionHeading=Option 2: Set up Digital Channels to use a Custom Gateway
 +
|anchor=customgateway
 +
|alignment=Vertical
 +
|structuredtext=Complete the steps in this section to set up Digital Channels to use a custom SMS gateway provider.
 +
 
 +
#Review the {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGPrerequisites|display text=prerequisites}} table.
 +
#Use the Digital Channels provisioning API to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGCustomServices|display text=create Digital Channels services definitions}}.
 +
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGcustomphone|display text=Manage and provision sender IDs.}}.
 +
{{AnchorDiv|CGPrerequisites}}<div class="pdf-table-landscape">
 +
===Prerequisites===
 +
Review the '''Prerequisites''' table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.
 +
{{{!}} class="wikitable pdf-table-landscape"
 +
{{!}}+Prerequisites
 +
!Parameter
 +
!Variable
 +
!Type
 +
!Example
 +
!Notes
 +
{{!}}-
 +
{{!}}Company's sender id
 +
{{!}}$asyncPhoneNumber
 +
{{!}}string
 +
{{!}}16504661149
 +
{{!}}
 +
{{!}}-
 +
{{!}}Third-party Messaging Webhook URL
 +
{{!}}$asyncWebhookURL
 +
{{!}}string
 +
{{!}}<nowiki>https://genesys-webhook.company.com</nowiki>
 +
{{!}}The FQDN of the third-party service implementing the Third-Party Messaging Webhook.
 +
{{!}}-
 +
{{!}}Third-Party Messaging API secret key
 +
{{!}}$asyncAPISignatureKey
 +
{{!}}string
 +
{{!}}Secret
 +
{{!}}The key used by the third-party service to calculate the signature for calls to the Third-Party Messaging API.
 +
{{!}}-
 +
{{!}}Third-Party Messaging Webhook secret key
 +
{{!}}$asyncWebhookSignatureKey
 +
{{!}}string
 +
{{!}}Secret
 +
{{!}}The key used by Digital Channels to calculate the signature for calls to the third-party service through the webhook.
 +
{{!}}}</div>{{AnchorDiv|CGCustomServices}}
 +
===Create Digital Channels services definitions===
 +
In this step, you will enable Digital Channels to use a custom gateway for the SMS provider of your choice. You must configure the following services in Digital Channels within your tenant:
 +
 
 +
*Async - Integrates the Genesys Multicloud CX tenant to the custom gateway used to communicate with the SMS provider of your choice.
 +
*SMS - Enables SMS media for the tenant and selects the Async provider.
 +
{{NoteFormat|Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. You must create these services once per tenant.|}}Create the '''Async''' service:<syntaxhighlight lang="text">
 +
curl -X POST \
 +
  $nexusURL/nexus/v3/provisioning/services/$ccid/Async \
 +
  -H 'Content-Type: application/json' \
 +
  -H 'x-api-key: $apiKey' \
 +
  -H 'x-ccid: $ccid' \
 +
  -d '{
 +
        "data": {
 +
          "channels": [
 +
            {
 +
              "channelId": "$asyncPhoneNumber",
 +
              "webhook": { "url": "$asyncWebhookURL" }
 +
            },
 +
            {
 +
              "channelId": "$asyncEmailDomain",
 +
              "webhook": { "url": "$asyncWebhookURL" }
 +
            }
 +
          ]
 +
        },
 +
        "secret": {
 +
          "channels": [
 +
            {
 +
              "channelId": "$asyncPhoneNumber",
 +
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
 +
              "api": { "secret": "$asyncAPISignatureKey" }
 +
            },
 +
            {
 +
              "channelId": "$asyncEmailDomain",
 +
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
 +
              "api": { "secret": "$asyncAPISignatureKey" }
 +
            }
 +
          ]
 +
        }
 +
      }'
 +
</syntaxhighlight>Create the '''SMS''' service:<syntaxhighlight lang="text">
 +
curl -X POST \
 +
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
 +
  -H 'Content-Type: application/json' \
 +
  -H 'x-api-key: $apiKey' \
 +
  -H 'x-ccid: $ccid' \
 +
  -d '{
 +
    "url" : "N/A",
 +
    "data" : { "provider": "Async" },
 +
    "secret": {}
 +
}'
 +
</syntaxhighlight><br />{{AnchorDiv|CGcustomphone}}
 +
===Manage and provision sender IDs===
 +
If you need to register a new or a existing short code or a text-enabled phone number, contact your Genesys representative to complete this step.
 +
 
 +
Provision {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=provisionnumbers|display text=sender IDs}} in Digital Channels.{{NoteFormat|An SMS must have a "provider" property equal to "Async" to use the Third-Party Messaging API implementation.|}}
 +
===Add custom HTTP headers===
 +
You can add custom HTTP headers with static values to the webhooks sent by Digital Channels to the third-party messaging aggregator. On the transaction '''NexusServices > [your async provider]''', add a property that starts with the "header:" prefix and set it to your static value. For example, <code>header:custom-header-for-async-1 = 12345</code>. The webhook from Digital Channels will include this property name and value in the header:<source lang="text">
 +
HTTP <\path\>
 +
custom-header-for-async-1: 12345
 +
X-Hub-Signature: <value>
 +
X-B3-TraceId: <value>
 +
Content-Type: application/json
 +
 +
{
 +
  "messages": [
 +
    {
 +
        ... RichMedia message ...
 +
    }
 +
  ]
 +
}
 +
</source>
 +
|Status=No
 +
}}{{Section
 +
|sectionHeading=Option 3: Set up Digital Channels to use Genesys Cloud CX SMS Aggregation
 
|anchor=enableMA
 
|anchor=enableMA
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Complete the steps in this section to set up Digital Channels to use Genesys Messaging Aggregation as its SMS gateway. Here's a breakdown of the tasks:
+
|structuredtext=Complete the steps in this section to set up Digital Channels to use Genesys Cloud CX SMS Aggregation as the SMS gateway.  
  
#Review the {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAPrerequisites|display text=prerequisites}} table and make sure you have the information listed.
+
#Review the {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAPrerequisites|display text=prerequisites}} table.
#Contact your Genesys representative to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMACloudOrg|display text=create a Genesys Cloud organization}} and get administrator user credentials. Your Genesys representative also must add the Genesys Messaging Aggregation product to your organization.
+
#Contact your Genesys representative to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMACloudOrg|display text=create a Genesys Cloud CX organization}} and get administrator user credentials. Your Genesys representative also must add the Genesys SMS Aggregation product to your organization.
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMACredendials|display text=Create the Digital Channels integration in Genesys Cloud}}. This will give you a clientId and clientSecret to authenticate API calls with the Digital Channels provisioning API.
+
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMACredendials|display text=Create the Digital Channels integration in Genesys Cloud CX}}. This will give you a clientId and clientSecret to authenticate API calls with the Digital Channels provisioning API.
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAAPIkey|display text=Create a Digital Channels API key for Genesys Cloud}}.
+
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAAPIkey|display text=Create a Digital Channels API key for Genesys Cloud CX}}.
 
#Use the Digital Channels provisioning API to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAIntegration|display text=create Digital Channels services definition}}.
 
#Use the Digital Channels provisioning API to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAIntegration|display text=create Digital Channels services definition}}.
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAPhoneNumbers|display text=Manage phone numbers and email domains}}.
+
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=GMAPhoneNumbers|display text=Manage and provision sender IDs}}.
 
{{AnchorDiv|GMAPrerequisites}}<div class="pdf-table-landscape">
 
{{AnchorDiv|GMAPrerequisites}}<div class="pdf-table-landscape">
 
===Prerequisites===
 
===Prerequisites===
Line 53: Line 257:
 
{{!}}45acae06-6b7c-4f97-9c76-471cb5c21bf7
 
{{!}}45acae06-6b7c-4f97-9c76-471cb5c21bf7
 
{{!}}This value comes from your Web Services and Applications deployment.
 
{{!}}This value comes from your Web Services and Applications deployment.
 +
{{!}}-
 +
{{!}}Nexus Provider
 +
{{!}}$nexusProvider
 +
{{!}}string
 +
{{!}}Portico
 +
{{!}}This option depends on the provider's value of the service.
 +
Supported values:
 +
 +
- Portico
 +
 +
- Async
 +
 +
- mGage
 
{{!}}}
 
{{!}}}
 
{{AnchorDiv|GMACloudOrg}}
 
{{AnchorDiv|GMACloudOrg}}
===Request a Genesys Cloud organization===
+
===Request a Genesys Cloud CX organization===
Contact your Genesys representative to create a Genesys Cloud organization and get administrator user credentials. Your Genesys representative also must add the Genesys Messaging Aggregation product to your organization.
+
Contact your Genesys representative to create a Genesys Cloud CX organization and get administrator user credentials. Your Genesys representative also must add the Genesys SMS Aggregation product to your organization.
  
Make sure your Genesys representative provides you with the details in the '''Genesys Cloud information''' table.
+
Make sure your Genesys representative provides you with the details in the '''Genesys Cloud CX information''' table.
 
{{{!}} class="wikitable"
 
{{{!}} class="wikitable"
{{!}}+Genesys Cloud information
+
{{!}}+Genesys Cloud CX information
 
!Parameter
 
!Parameter
 
!Variable
 
!Variable
Line 67: Line 284:
 
!Notes
 
!Notes
 
{{!}}-
 
{{!}}-
{{!}}Genesys Cloud Organization ID
+
{{!}}Genesys Cloud CX Organization ID
 
{{!}}$orgId
 
{{!}}$orgId
 
{{!}}UUID string
 
{{!}}UUID string
 
{{!}}47d8329d-1c28-4c86-9374-5596bddfee15
 
{{!}}47d8329d-1c28-4c86-9374-5596bddfee15
{{!}}Your Genesys Cloud organization ID.
+
{{!}}Your Genesys Cloud CX organization ID.
 
{{!}}-
 
{{!}}-
{{!}}Genesys Cloud Organization admin user credentials
+
{{!}}Genesys Cloud CX Organization admin user credentials
 
{{!}}$orgUsername
 
{{!}}$orgUsername
 
$orgPassword
 
$orgPassword
Line 80: Line 297:
 
{{!}}The username and password for an account with administrative permissions for this organization.
 
{{!}}The username and password for an account with administrative permissions for this organization.
 
{{!}}-
 
{{!}}-
{{!}} colspan="1"{{!}}Genesys Cloud Login URL
+
{{!}} colspan="1"{{!}}Genesys Cloud CX Login URL
 
{{!}}$gcLoginURL
 
{{!}}$gcLoginURL
 
{{!}} colspan="1"{{!}}HTTPS URL string
 
{{!}} colspan="1"{{!}}HTTPS URL string
 
{{!}}<nowiki>https://login.mypurecloud.com</nowiki>
 
{{!}}<nowiki>https://login.mypurecloud.com</nowiki>
{{!}}Your Genesys Cloud login URL (depends on your organization region).
+
{{!}}Your Genesys Cloud CX login URL (depends on your organization region).
 
{{!}}-
 
{{!}}-
{{!}} colspan="1"{{!}}Genesys Cloud API URL
+
{{!}} colspan="1"{{!}}Genesys Cloud CX API URL
 
{{!}} colspan="1"{{!}}$gcAPIURL
 
{{!}} colspan="1"{{!}}$gcAPIURL
 
{{!}} colspan="1"{{!}}HTTPS URL string
 
{{!}} colspan="1"{{!}}HTTPS URL string
 
{{!}} colspan="1"{{!}}<nowiki>https://api.mypurecloud.com</nowiki>
 
{{!}} colspan="1"{{!}}<nowiki>https://api.mypurecloud.com</nowiki>
{{!}} colspan="1"{{!}}Your Genesys Cloud login URL (depends on your organization region).
+
{{!}} colspan="1"{{!}}Your Genesys Cloud CX login URL (depends on your organization region).
 
{{!}}}</div>
 
{{!}}}</div>
 
{{AnchorDiv|GMACredendials}}
 
{{AnchorDiv|GMACredendials}}
===Create the Digital Channels integration in Genesys Cloud===
+
===Create the Digital Channels integration in Genesys Cloud CX===
Complete the steps in this section as an [https://help.mypurecloud.com/articles/get-started-administering-genesys-cloud/ administrator user in Genesys Cloud] to create the integration client credentials that will be used by Digital Channels to access Genesys Cloud APIs to send and receive messages. You're going to create a new role, assign it to your admin user, and create the access credentials.
+
Complete the steps in this section as an [https://help.mypurecloud.com/articles/get-started-administering-genesys-cloud/ administrator user in Genesys Cloud CX] to create the integration client credentials that will be used by Digital Channels to access Genesys Cloud CX APIs to send and receive messages. You're going to create a new role, assign it to your admin user, and create the access credentials.
  
 
First, create the new role:
 
First, create the new role:
  
#Navigate to $gcLoginURL (for example, [https://login.mypurecloud.com/ https://login.mypurecloud.com]) and log in to Genesys Cloud with your $orgUsername/$orgPassword.
+
#Navigate to $gcLoginURL (for example, [https://login.mypurecloud.com/ https://login.mypurecloud.com]) and log in to Genesys Cloud CX with your $orgUsername/$orgPassword.
 
#Go to '''Admin'''.
 
#Go to '''Admin'''.
 
#Under '''People and Permissions''', click '''Roles/Permissions'''.
 
#Under '''People and Permissions''', click '''Roles/Permissions'''.
Line 139: Line 356:
 
{{!}}}</div>
 
{{!}}}</div>
 
{{AnchorDiv|GMAAPIkey}}
 
{{AnchorDiv|GMAAPIkey}}
===Create a Digital Channels API key for Genesys Cloud===
+
===Create a Digital Channels API key for Genesys Cloud CX===
To create an API key that will be used by Genesys Cloud to send requests to Digital Channels, follow the steps in {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionAPI|display text=Provision API keys}}. Make sure to use the following parameters:  
+
To create an API key that will be used by Genesys Cloud CX to send requests to Digital Channels, follow the steps in {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionAPI|display text=Provision API keys}}. Make sure to use the following parameters:  
 
  "tenant": "*"
 
  "tenant": "*"
 
  "name":"Portico Cluster API Key"
 
  "name":"Portico Cluster API Key"
Line 158: Line 375:
 
{{AnchorDiv|GMAIntegration}}
 
{{AnchorDiv|GMAIntegration}}
 
===Create Digital Channels services definitions===
 
===Create Digital Channels services definitions===
In this step you will enable Digital Channels to use Genesys Messaging Aggregation as the SMS and outbound email provider. You must configure the following services in Digital Channels within your tenant:
+
Enable Digital Channels to use Genesys Cloud CX SMS Aggregation as the SMS provider. You must configure the following services in Digital Channels within your tenant:
  
*PurecloudIDP - Integrates the Genesys Multicloud CX tenant to the Genesys Cloud organization.
+
*PurecloudIDP - Integrates the Genesys Multicloud CX tenant to the Genesys Cloud CX organization.
 
*SMS - Enables SMS media for the tenant and selects the provider.
 
*SMS - Enables SMS media for the tenant and selects the provider.
*PorticoSMS - Enables the SMS service through Genesys Messaging Aggregation.
+
*PorticoSMS - Enables the SMS service through Genesys Cloud CX.
*PorticoEmail - Enables the outbound email service through Genesys Messaging Aggregation.
 
  
 
{{NoteFormat|Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. Note: You must create these services once per tenant.|}}
 
{{NoteFormat|Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. Note: You must create these services once per tenant.|}}
Line 200: Line 416:
 
     "data": {}
 
     "data": {}
 
}'
 
}'
</syntaxhighlight>(Optional) - Create the '''PorticoEmail''' service if you use CX Contact email campaigns.<syntaxhighlight lang="text">
+
</syntaxhighlight><br />{{AnchorDiv|GMAPhoneNumbers}}
curl -X POST \
+
===Manage provision sender IDs===
  $nexusURL/nexus/v3/provisioning/services/$ccid/PorticoEmail \
+
You can purchase new SMS numbers or re-use your existing text-enabled numbers.  
  -H 'Content-Type: application/json' \
 
  -H 'x-api-key: $apiKey' \
 
  -H 'x-ccid: $ccid' \
 
  -d '{
 
    "url" : "$gcAPIURL",
 
    "secret": {},
 
    "data": {}
 
}'
 
</syntaxhighlight>
 
{{AnchorDiv|GMAPhoneNumbers}}
 
===Manage phone numbers and email domains===
 
You can purchase new SMS numbers or re-use your existing numbers or email domains.  
 
  
If you need to register an existing (Bring-Your-Own-Number) number, email domain or new short code, contact your Genesys representative to complete this step. Otherwise, follow the steps below to use the Genesys Messaging Aggregation API from Genesys Cloud to purchase and register toll free numbers from the pool of available numbers. '''Note:''' Each purchased number will incur additional costs to your account.  
+
If you need to register an existing phone number or new short code, contact your Genesys representative to complete this step. Otherwise, follow the steps below to use the Genesys SMS Aggregation API from Genesys Cloud CX to purchase and register toll-free numbers from the pool of available numbers. '''Note:''' Each purchased number will incur additional costs to your account.  
  
====Retrieve the Genesys Cloud token====
+
====Retrieve the Genesys Cloud CX token====
Any Genesys Cloud operation has to include a security token that remains valid for a configured amount of time. When the token expires, you must retrieve it again in order to send new requests.
+
Any Genesys Cloud CX operation has to include a security token that remains valid for a configured amount of time. When the token expires, you must retrieve it again in order to send new requests.
  
 
To retrieve your token, use Basic Authentication where the username is '''$clientId''' and the password is '''$clientSecret'''.<syntaxhighlight lang="text">
 
To retrieve your token, use Basic Authentication where the username is '''$clientId''' and the password is '''$clientSecret'''.<syntaxhighlight lang="text">
Line 240: Line 444:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
====Search for available toll free number====
+
====Search for available toll free-number====
 
To order a new number, first search for available numbers and then select one of the options.<syntaxhighlight lang="text">
 
To order a new number, first search for available numbers and then select one of the options.<syntaxhighlight lang="text">
 
curl -X GET \
 
curl -X GET \
Line 247: Line 451:
 
</syntaxhighlight>The response contains a few currently available numbers - choose the one you like. We'll use the variable '''$tfn''' to represent this number.
 
</syntaxhighlight>The response contains a few currently available numbers - choose the one you like. We'll use the variable '''$tfn''' to represent this number.
  
====Order a toll free number number====
+
====Order a toll-free number number====
 
When you send this request, use the '''comment''' and '''emailAddress''' fields to help Genesys Customer Care quickly identify the best contact person if there's an issue with the SMS service. For example, you can include your organization name in the '''comment''' field.<syntaxhighlight lang="text">
 
When you send this request, use the '''comment''' and '''emailAddress''' fields to help Genesys Customer Care quickly identify the best contact person if there's an issue with the SMS service. For example, you can include your organization name in the '''comment''' field.<syntaxhighlight lang="text">
 
curl -X POST \
 
curl -X POST \
Line 265: Line 469:
 
]'
 
]'
 
</syntaxhighlight>
 
</syntaxhighlight>
Finally, {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=provisionnumbers|display text=provision your new numbers in Digital Channels}}.
+
Finally, {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=provisionnumbers|display text=provision your new numbers in Digital Channels}}.
 
 
====Email domains====
 
Contact your Genesys representative to complete this step.
 
 
|Status=No
 
|Status=No
 
}}{{Section
 
}}{{Section
|sectionHeading=Set up Digital Channels to use a custom gateway
+
|sectionHeading=Provision sender IDs in Digital Channels
|anchor=customgateway
 
|alignment=Vertical
 
|structuredtext=Complete the steps in this section to set up Digital Channels to use a custom SMS gateway or email provider. Here's a breakdown of the tasks:
 
 
 
#Review the {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGPrerequisites|display text=prerequisites}} table and make sure you have all the information listed.
 
#Use the Digital Channels provisioning API to {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGCustomServices|display text=Create Digital Channels services definitions}}.
 
#{{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=CGcustomphone|display text=Manage phone numbers and email domains}}.
 
{{AnchorDiv|CGPrerequisites}}<div class="pdf-table-landscape">
 
===Prerequisites===
 
Review the '''Prerequisites''' table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.
 
{{{!}} class="wikitable pdf-table-landscape"
 
{{!}}+Prerequisites
 
!Parameter
 
!Variable
 
!Type
 
!Example
 
!Notes
 
{{!}}-
 
{{!}}Company's phone number
 
{{!}}$asyncPhoneNumber
 
{{!}}string
 
{{!}}16504661149
 
{{!}}
 
{{!}}-
 
{{!}}Company's email domain
 
{{!}}$asyncEmailDomain
 
{{!}}string
 
{{!}}company.com
 
{{!}}
 
{{!}}-
 
{{!}}Third-party Messaging Webhook URL
 
{{!}}$asyncWebhookURL
 
{{!}}string
 
{{!}}<nowiki>https://genesys-webhook.company.com</nowiki>
 
{{!}}The FQDN of the third-party service implementing the Third-Party Messaging Webhook.
 
{{!}}-
 
{{!}}Third-Party Messaging API secret key
 
{{!}}$asyncAPISignatureKey
 
{{!}}string
 
{{!}}Secret
 
{{!}}The key used by the third-party service to calculate the signature for calls to the Third-Party Messaging API.
 
{{!}}-
 
{{!}}Third-Party Messaging Webhook secret key
 
{{!}}$asyncWebhookSignatureKey
 
{{!}}string
 
{{!}}Secret
 
{{!}}The key used by Digital Channels to calculate the signature for calls to the third-party service through the webhook.
 
{{!}}}</div>{{AnchorDiv|CGCustomServices}}
 
===Create Digital Channels services definitions===
 
In this step you will enable Digital Channels to use your custom gateway for the SMS/Email provider of your choice. You must configure the following services in Digital Channels within your tenant:
 
 
 
*Async - Integrates the Genesys Multicloud CX tenant to the custom gateway used to communicate with the SMS/Email provider of your choice.
 
*SMS - Enables SMS media for the tenant and selects the Async provider.
 
*Email - Enables outbound email service through the Async provider.
 
{{NoteFormat|Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. You must create these services once per tenant.|}}Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. You must create these services once per tenant.
 
Create the '''Async''' service:<syntaxhighlight lang="text">
 
curl -X POST \
 
  $nexusURL/nexus/v3/provisioning/services/$ccid/Async \
 
  -H 'Content-Type: application/json' \
 
  -H 'x-api-key: $apiKey' \
 
  -H 'x-ccid: $ccid' \
 
  -d '{
 
        "data": {
 
          "channels": [
 
            {
 
              "channelId": "$asyncPhoneNumber",
 
              "webhook": { "url": "$asyncWebhookURL" }
 
            },
 
            {
 
              "channelId": "$asyncEmailDomain",
 
              "webhook": { "url": "$asyncWebhookURL" }
 
            }
 
          ]
 
        },
 
        "secret": {
 
          "channels": [
 
            {
 
              "channelId": "$asyncPhoneNumber",
 
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
 
              "api": { "secret": "$asyncAPISignatureKey" }
 
            },
 
            {
 
              "channelId": "$asyncEmailDomain",
 
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
 
              "api": { "secret": "$asyncAPISignatureKey" }
 
            }
 
          ]
 
        }
 
      }'
 
</syntaxhighlight>Create the '''SMS''' service:<syntaxhighlight lang="text">
 
curl -X POST \
 
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
 
  -H 'Content-Type: application/json' \
 
  -H 'x-api-key: $apiKey' \
 
  -H 'x-ccid: $ccid' \
 
  -d '{
 
    "url" : "N/A",
 
    "data" : { "provider": "Async" },
 
    "secret": {}
 
}'
 
</syntaxhighlight>Create the '''Email''' service:<syntaxhighlight lang="text">
 
curl -X POST \
 
  $nexusURL/nexus/v3/provisioning/services/$ccid/Email \
 
  -H 'Content-Type: application/json' \
 
  -H 'x-api-key: $apiKey' \
 
  -H 'x-ccid: $ccid' \
 
  -d '{
 
    "url" : "N/A",
 
    "data" : { "provider": "Async" },
 
    "secret": {}
 
}'
 
</syntaxhighlight>{{AnchorDiv|CGcustomphone}}
 
===Manage phone numbers and email domains===
 
Provision {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=provisionnumbers|display text=phone numbers}} and {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=ProvisionSMS|anchor=email|display text=email domains}} (for integrations with CX Contact for email campaigns) in Digital Channels. '''Note:''' An SMS or email channel must have a "provider" property equal to "Async" to use the Third-Party Messaging API implementation.
 
|Status=No
 
}}{{Section
 
|sectionHeading=Provision phone numbers in Digital Channels
 
 
|anchor=provisionnumbers
 
|anchor=provisionnumbers
 
|alignment=Vertical
 
|alignment=Vertical
|structuredtext=Complete the following steps for each phone number you want to use to send and receive SMS messages.
+
|structuredtext=Complete the following steps for each short code or text enabled toll-free number you want to use to send and receive SMS messages.
  
 
#Log in to Designer and {{Link-AnywhereElse|product=PEC-ROU|version=Current|manual=Designer|topic=ApplicationsBar|anchor=appcreate|display text=create an application}} to route SMS interactions. {{Link-AnywhereElse|product=PEC-ROU|version=Current|manual=Designer|topic=ApplicationsBar|anchor=manage_endpoint|display text=Create a chat endpoint}} and assign it to your application, making note of the name you use. We'll use the variable '''$designerEndpointName''' to represent this value.
 
#Log in to Designer and {{Link-AnywhereElse|product=PEC-ROU|version=Current|manual=Designer|topic=ApplicationsBar|anchor=appcreate|display text=create an application}} to route SMS interactions. {{Link-AnywhereElse|product=PEC-ROU|version=Current|manual=Designer|topic=ApplicationsBar|anchor=manage_endpoint|display text=Create a chat endpoint}} and assign it to your application, making note of the name you use. We'll use the variable '''$designerEndpointName''' to represent this value.
Line 401: Line 485:
 
#*endpoint = chat.'''$designerEndpointName'''
 
#*endpoint = chat.'''$designerEndpointName'''
 
#*interactionSubtype = SMS
 
#*interactionSubtype = SMS
#*interactionType  = Inbound
+
#*interactionType  = Inbound
 
#*media = chat
 
#*media = chat
 
#*cxcOnly = false  
 
#*cxcOnly = false  
 
#*:'''Note:''' Set <code>cxcOnly</code> to '''true''' for CX Contact integrations. If '''true''', incoming SMS messages are not processed as chat messages and are not delivered to an agent. The default value is '''false'''.
 
#*:'''Note:''' Set <code>cxcOnly</code> to '''true''' for CX Contact integrations. If '''true''', incoming SMS messages are not processed as chat messages and are not delivered to an agent. The default value is '''false'''.
#*provider = Async (Only set this option if you use a custom gateway as the SMS aggregator.)
+
#*provider = $nexusProvider (Default: Portico, if the value is missing)
{{AnchorDiv|custom}}
 
===Add custom HTTP headers===
 
You can add custom HTTP headers with static values to the webhooks sent by Digital Channels to the third-party messaging aggregator. On the transaction '''NexusServices > [your async provider]''', add a property that starts with the "header:" prefix and set it to your static value. For example, <code>header:custom-header-for-async-1 = 12345</code>. The webhook from Digital Channels will include this property name and value in the header:
 
<source lang="text">
 
HTTP <\path\>
 
custom-header-for-async-1: 12345
 
X-Hub-Signature: <value>
 
X-B3-TraceId: <value>
 
Content-Type: application/json
 
 
{
 
  "messages": [
 
    {
 
        ... RichMedia message ...
 
    }
 
  ]
 
}
 
</source>
 
|Status=No
 
}}{{Section
 
|sectionHeading=Provision email domains in Digital Channels
 
|anchor=email
 
|alignment=Vertical
 
|structuredtext=Complete the steps in this section if you are integrating with CX Contact and plan to use email campaigns. These steps explain how to choose an email domain that you control (you should be able to update DNS record sets for this domain) and want to use in email campaigns as the "sent from" address.
 
 
 
If you are using Genesys Cloud as the provider, contact your Genesys representative to have them provision an email domain in Genesys Cloud for your organization. Once completed, you will receive a set of secrets you must use to update your domains records. After this update, contact your Genesys representative to validate the secrets and confirm domain ownership. Now you can provision an email service channel.
 
 
 
Complete the following for each domain only after your domain records have been updated, validated, and provisioned in Genesys Cloud.
 
 
 
#In Agent Setup, navigate to the "NexusServices" {{Link-SomewhereInThisVersion|manual=DCPEGuide|topic=PreConfig|anchor=transactions|display text=transaction you created previously}}.
 
#Create a section that starts with 'cxc.' and includes some text that represents the domain. For example, <code>cxc.Coraporate_Promotions</code>. Note: The 'cxc.' prefix is required and the rest of the value can be made up of letters and underscore or dashes, but not spaces.
 
#In this new section, create the following options:
 
#*channelId = '''$emailDomain'''
 
#*channelType = email
 
#*provider = Async (Only set this option if you use a custom gateway as the email aggregator.)
 
 
|Status=No
 
|Status=No
 
}}
 
}}
 
}}
 
}}

Latest revision as of 05:41, August 1, 2022

This topic is part of the manual Digital Channels Private Edition Guide for version Current of Digital Channels.

Learn how to enable SMS connectivity for inbound conversations and outbound campaigns.

Important
“Nexus” is the simplified name we use for the Digital Channels application and APIs, so you’ll see that name referenced in this document.

Genesys Multicloud CX supports SMS interactions using one of these three options: built-in connector to Kaleyra SMS text messaging service, a custom gateway built with a third-party messaging API, or a built-in connector to Genesys Cloud CX SMS aggregation service.Digitalchannels provision sms diagram.pngAfter completing the setup steps on this page, you will be able to:

  • Receive SMS messages from your customers on your corporate short code or long code and allow a Designer application or agent to respond to them.
  • Send SMS messages in your outbound campaigns through CX Contact.

To get started, complete the configuration steps for one of the following scenarios:

Option 1: Set up Digital Channels to use Kaleyra SMS

Complete the steps in this section to set up Digital Channels to use the built-in connector to Kaleyra.

  1. Review the prerequisites table.
  2. Use the Digital Channels provisioning API to create Digital Channels services definition.
  3. Manage and provision sender IDs.

Prerequisites

Review the Prerequisites table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.

Prerequisites
Parameter Variable Type Example Notes
Company's sender id $tfn string 1650466114 The sender id can be a short code (5 digits) or a long code (10 digits).
Contact Center Id $ccid UUID string
45acae06-6b7c-4f97-9c76-471cb5c21bf7 This value comes from your Web Services and Applications deployment.
Digital Channels URL $baseURL string http://digital.example.com Publicly available URL for Digital Channels API
Kaleyra API URL $kaleyraURL string http://directtext.mgage.com URL for Kaleyra SMS API.
Kaleyra user name $kaleyraUserName string Secret The username for an account with permission to send SMS.
Kaleyra password $kaleyraPassword string Secret The password for an account with permission to send SMS.

Create Digital Channels services definitions

Enable Digital Channels to use the built-in connector to Kaleyra SMS services (Kaleyra was formerly known as mGage). You must configure the following services in Digital Channels within your tenant:

  • SMS - Enables SMS media for the tenant and selects Kaleyra as the default provider.
  • mGageSMS - Integrates your Genesys Multicloud CX tenant to Kaleyra for SMS communication.
Important
Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. Note: You must create these services once per tenant.
Create the SMS service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
    "url" : "N/A",
    "data" : { "provider": "mGage" },
    "secret": {}
}'
Create the mGageSMS service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/mGageSMS \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
        "url": "$kaleyraURL"
        "data": { },
        "secret": {          
             "username": "$kaleyraUserName", 
             "password": "$kaleyraPassword"         } }'

Adding sender IDs to Kaleyra

If you need to add a new short code or text-enabled phone number, contact your Genesys representative to complete this step.

Manage and provision sender IDs

Provision sender IDs in Digital Channels.

Option 2: Set up Digital Channels to use a Custom Gateway

Complete the steps in this section to set up Digital Channels to use a custom SMS gateway provider.

  1. Review the prerequisites table.
  2. Use the Digital Channels provisioning API to create Digital Channels services definitions.
  3. Manage and provision sender IDs..

Prerequisites

Review the Prerequisites table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.

Prerequisites
Parameter Variable Type Example Notes
Company's sender id $asyncPhoneNumber string 16504661149
Third-party Messaging Webhook URL $asyncWebhookURL string https://genesys-webhook.company.com The FQDN of the third-party service implementing the Third-Party Messaging Webhook.
Third-Party Messaging API secret key $asyncAPISignatureKey string Secret The key used by the third-party service to calculate the signature for calls to the Third-Party Messaging API.
Third-Party Messaging Webhook secret key $asyncWebhookSignatureKey string Secret The key used by Digital Channels to calculate the signature for calls to the third-party service through the webhook.

Create Digital Channels services definitions

In this step, you will enable Digital Channels to use a custom gateway for the SMS provider of your choice. You must configure the following services in Digital Channels within your tenant:

  • Async - Integrates the Genesys Multicloud CX tenant to the custom gateway used to communicate with the SMS provider of your choice.
  • SMS - Enables SMS media for the tenant and selects the Async provider.
Important
Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. You must create these services once per tenant.
Create the Async service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/Async \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
        "data": {
          "channels": [
            {
              "channelId": "$asyncPhoneNumber",
              "webhook": { "url": "$asyncWebhookURL" }
            },
            {
              "channelId": "$asyncEmailDomain",
              "webhook": { "url": "$asyncWebhookURL" }
            }
          ]
        },
        "secret": {
          "channels": [
            {
              "channelId": "$asyncPhoneNumber",
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
              "api": { "secret": "$asyncAPISignatureKey" }
            },
            {
              "channelId": "$asyncEmailDomain",
              "webhook": { "secret": "$asyncWebhookSignatureKey" },
              "api": { "secret": "$asyncAPISignatureKey" }
            }
          ]
        }
      }'
Create the SMS service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
    "url" : "N/A",
    "data" : { "provider": "Async" },
    "secret": {}
}'

Manage and provision sender IDs

If you need to register a new or a existing short code or a text-enabled phone number, contact your Genesys representative to complete this step.

Provision sender IDs in Digital Channels.
Important
An SMS must have a "provider" property equal to "Async" to use the Third-Party Messaging API implementation.

Add custom HTTP headers

You can add custom HTTP headers with static values to the webhooks sent by Digital Channels to the third-party messaging aggregator. On the transaction NexusServices > [your async provider], add a property that starts with the "header:" prefix and set it to your static value. For example, header:custom-header-for-async-1 = 12345. The webhook from Digital Channels will include this property name and value in the header:
HTTP <\path\>
custom-header-for-async-1: 12345
X-Hub-Signature: <value>
X-B3-TraceId: <value>
Content-Type: application/json
 
{
  "messages": [
    {
        ... RichMedia message ...
    }
  ]
}

Option 3: Set up Digital Channels to use Genesys Cloud CX SMS Aggregation

Complete the steps in this section to set up Digital Channels to use Genesys Cloud CX SMS Aggregation as the SMS gateway.

  1. Review the prerequisites table.
  2. Contact your Genesys representative to create a Genesys Cloud CX organization and get administrator user credentials. Your Genesys representative also must add the Genesys SMS Aggregation product to your organization.
  3. Create the Digital Channels integration in Genesys Cloud CX. This will give you a clientId and clientSecret to authenticate API calls with the Digital Channels provisioning API.
  4. Create a Digital Channels API key for Genesys Cloud CX.
  5. Use the Digital Channels provisioning API to create Digital Channels services definition.
  6. Manage and provision sender IDs.

Prerequisites

Review the Prerequisites table and make sure you have all the listed information before you get started. The values in this table are referenced later by the name in the Variable column.

Prerequisites
Parameter Variable Type Example Notes
GWS tenant Contact Center ID $ccid UUID string
45acae06-6b7c-4f97-9c76-471cb5c21bf7 This value comes from your Web Services and Applications deployment.
Nexus Provider $nexusProvider string Portico This option depends on the provider's value of the service.

Supported values:

- Portico

- Async

- mGage

Request a Genesys Cloud CX organization

Contact your Genesys representative to create a Genesys Cloud CX organization and get administrator user credentials. Your Genesys representative also must add the Genesys SMS Aggregation product to your organization.

Make sure your Genesys representative provides you with the details in the Genesys Cloud CX information table.

Genesys Cloud CX information
Parameter Variable Type Example Notes
Genesys Cloud CX Organization ID $orgId UUID string 47d8329d-1c28-4c86-9374-5596bddfee15 Your Genesys Cloud CX organization ID.
Genesys Cloud CX Organization admin user credentials $orgUsername

$orgPassword

string admin-user / admin-password The username and password for an account with administrative permissions for this organization.
Genesys Cloud CX Login URL $gcLoginURL HTTPS URL string https://login.mypurecloud.com Your Genesys Cloud CX login URL (depends on your organization region).
Genesys Cloud CX API URL $gcAPIURL HTTPS URL string https://api.mypurecloud.com Your Genesys Cloud CX login URL (depends on your organization region).

Create the Digital Channels integration in Genesys Cloud CX

Complete the steps in this section as an administrator user in Genesys Cloud CX to create the integration client credentials that will be used by Digital Channels to access Genesys Cloud CX APIs to send and receive messages. You're going to create a new role, assign it to your admin user, and create the access credentials.

First, create the new role:

  1. Navigate to $gcLoginURL (for example, https://login.mypurecloud.com) and log in to Genesys Cloud CX with your $orgUsername/$orgPassword.
  2. Go to Admin.
  3. Under People and Permissions, click Roles/Permissions.
  4. Click Add Role and give it a name. For example, Nexus Messaging.
  5. Under Permissions, search for messaging and select messaging > All Permissions and messagingProvisioning > All Permissions. Save your changes.

Next, assign the role to your administrator user:

  1. Click Admin.
  2. Under People and Permissions, click People.
  3. Search for your admin user.
  4. Under Roles, switch the view to All and search for the name of your new role (Nexus Messaging). Click to enable the role and then save your changes.
  5. Log out and log in again to enable the permissions.

Now create access credentials for the Digital Channels integration.

  1. Click Admin.
  2. Under Integrations, click OAuth.
  3. Click Add Client.
  4. Under Client Details, set App Name to Nexus Messaging Integration and select the Client Credentials Grant Type.
  5. Click Roles and assign the Nexus Messaging role. Save your changes.
  6. Go back to Client Details and copy the values for clientId and clientSecret.
As the output of this step, you will have the access credentials:
Parameter Variable Type Example
Nexus Integration client ID $clientId UUID string 4da40a9de-b113-4024-8ba9-c9dd89c91f67
Nexus Integration client secret $clientSecret string aKSXEgLO57cm6FqxD4hrjkcW-iuWiXhd0uF0WOcZUm2

Create a Digital Channels API key for Genesys Cloud CX

To create an API key that will be used by Genesys Cloud CX to send requests to Digital Channels, follow the steps in Provision API keys. Make sure to use the following parameters:

"tenant": "*"
"name":"Portico Cluster API Key"
"permissions" : ["nexus:cluster:*"]

As an output of this step, you will have the API key:

Parameter Variable Type Example
Messaging Cluster API Key $apikey UUID string 9b7682b7-cbce-422f-9bbb-ecda85e61695

Create Digital Channels services definitions

Enable Digital Channels to use Genesys Cloud CX SMS Aggregation as the SMS provider. You must configure the following services in Digital Channels within your tenant:

  • PurecloudIDP - Integrates the Genesys Multicloud CX tenant to the Genesys Cloud CX organization.
  • SMS - Enables SMS media for the tenant and selects the provider.
  • PorticoSMS - Enables the SMS service through Genesys Cloud CX.
Important
Use a REST client or curl utility to provision the following services in Digital Channels using the provisioning API. Make sure to substitute the variables - prefixed with '$' - with their values. Note: You must create these services once per tenant.
Create the PurecloudIDP service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/PurecloudIDP \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
    "url" : "$gcLoginURL",
    "secret": {"clientId": "$clientId", "clientSecret": "$clientSecret"},
    "data" : {}
}'
Create the SMS service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/SMS \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
    "url" : "N/A",
    "secret": {},
    "data" : {"tokenProvider": "Purecloud"}
}'
Create the PorticoSMS service:
curl -X POST \
  $nexusURL/nexus/v3/provisioning/services/$ccid/PorticoSMS \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: $apiKey' \
  -H 'x-ccid: $ccid' \
  -d '{
    "url" : "$gcAPIURL",
    "secret": {},
    "data": {}
}'

Manage provision sender IDs

You can purchase new SMS numbers or re-use your existing text-enabled numbers.

If you need to register an existing phone number or new short code, contact your Genesys representative to complete this step. Otherwise, follow the steps below to use the Genesys SMS Aggregation API from Genesys Cloud CX to purchase and register toll-free numbers from the pool of available numbers. Note: Each purchased number will incur additional costs to your account.

Retrieve the Genesys Cloud CX token

Any Genesys Cloud CX operation has to include a security token that remains valid for a configured amount of time. When the token expires, you must retrieve it again in order to send new requests.

To retrieve your token, use Basic Authentication where the username is $clientId and the password is $clientSecret.
curl -X POST \
  $gcLoginURL/oauth/token \
  -H 'Authorization: Basic YOUR_BASIC_AUTHENTICATION_SECRETS' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials'
The response contains:
  • access_token - You must include this in all subsequent requests.
  • expires_in - Indicates how long the token is valid.
  • token_type - Indicates how this token needs to be included in subsequent requests (bearer token).

List purchased and registered numbers

Run the following command to list your purchased and registered numbers:
curl -X GET \
  $gcAPIURL/api/v2/messaging/sms/provisioning/tollfreenumbers/ \
  -H 'Authorization: Bearer $access_token'

Search for available toll free-number

To order a new number, first search for available numbers and then select one of the options.
curl -X GET \
  $gcAPIURL/api/v2/messaging/sms/provisioning/tollfreenumbers/available \
  -H 'Authorization: Bearer $access_token'
The response contains a few currently available numbers - choose the one you like. We'll use the variable $tfn to represent this number.

Order a toll-free number number

When you send this request, use the comment and emailAddress fields to help Genesys Customer Care quickly identify the best contact person if there's an issue with the SMS service. For example, you can include your organization name in the comment field.
curl -X POST \
  $gcAPIURL/api/v2/messaging/sms/provisioning/tollfreenumbers/ \
  -H 'Authorization: Bearer $access_token' \
  -H 'Content-Type: application/json' \
  -d '[
    {
        "tollfreeNumber": "$tfn",
        "comment": "Nexus Premise ACME Corp",
        "moUrl": "$nexusURL/nexus/v3/sms/message",
        "drUrl": "$nexusURL/nexus/v3/sms/receipt",
        "webhookUsername": "$ccid",
        "webhookPassword": "$GMAKey",
        "emailAddress": "sms.admin@acme.test.com"
    }
]'

Finally, provision your new numbers in Digital Channels.

Provision sender IDs in Digital Channels

Complete the following steps for each short code or text enabled toll-free number you want to use to send and receive SMS messages.

  1. Log in to Designer and create an application to route SMS interactions. Create a chat endpoint and assign it to your application, making note of the name you use. We'll use the variable $designerEndpointName to represent this value.
  2. Log in to Platform Administration and go to Environment > Transactions > NexusServices > Options.
  3. Create a section that starts with 'chat.' and includes some text that represents the purpose of number. For example, chat.SMS_Main_Corporate or chat.SMS_CustomerSupport. Note: The 'chat.' prefix is required and the rest of the value can be made up of letters and underscore or dashes, but not spaces.
  4. In this new section, create the following options:
    • channelId = $tfn
    • channelType = sms
    • endpoint = chat.$designerEndpointName
    • interactionSubtype = SMS
    • interactionType = Inbound
    • media = chat
    • cxcOnly = false
      Note: Set cxcOnly to true for CX Contact integrations. If true, incoming SMS messages are not processed as chat messages and are not delivered to an agent. The default value is false.
    • provider = $nexusProvider (Default: Portico, if the value is missing)
Comments or questions about this documentation? Contact us for support!