Setting Up the ICC Application

This section will walk you through how to import the application and make final configurations for Twilio and Dialogflow.

Importing the Application

If you haven't already, please download the ICC Application zip from the software downloads page.

Properties File Modification

Prior to importing the application, make the following changes to the import customization file:

  1. ICC_VAL_IS_CLOUD_SITE: Uncomment and set to true or false depending on whether the app is being imported on a cloud site. Please note that sentiment analysis will not work for on-premise installations.
  2. ICC_VAL_AI_FEATURE_TOGGLE: Uncomment and set to true or false depending on whether you want to use Dialogflow.
  3. ICC_VAL_CURRENT_ENVIRONMENT_URL: Uncomment and update the value to the site you are importing the app into. Must be in the format of
  4. ICC_VAL_TWIL_SUBACCOUNT_NAME: Uncomment and update the value to something that will identify this environment in the Twilio console.
  5. ICC_VAL_ISO3166_COUNTRY_TO_FIND_PHONE_NUMBER: Uncomment and set the value to the 2 character country code in which you want to purchase a phone number. Please refer to Twilio's list of supported countries.

If you have an already existing Twilio subaccount that you would like the imported app to use, further modifications to parameters in the properties file can be made.

App Import

After making the appropriate modifications to the properties file, go through the following steps to properly import the app and ensure usability.

  1. Run ICC_Schema_Creation.sql in your Appian environment’s data store*
  2. Import the application using the import customization file
  3. Publish all data stores
  4. (Sample App Only) Run ICC_Sample_Data.sql to populate sample data*

*Please note that this SQL file included in the package is optimized for MySQL. Modifications may need to be made for SQL Server and Oracle.

Creating the Service Account and API Key

An Appian service account must be created to authenticate requests to Appian. An API key will be used for the authentication process and this service account will be the means by which Twilio and Google Dialogflow call Appian web APIs. The service account is not meant to be used as an agent. Follow the steps below to properly set up the service account.

  1. Create a new service account with the username icc-service-account
  2. Create an API key with the description Twilio to use in the Initialize Twilio Configuration Action section
  3. Create an API key with the description Google Dialogflow to use in the Google Dialogflow API Key Configuration section if needed
  4. Add the new service account to the ICC All Users group

Initialize Twilio Configuration Action

The Initialize Twilio Configuration action in the ICC application is an easy way to set up all of the necessary objects and connections with Twilio to get up and running quickly. This should be done if you want to set up a Twilio subaccount from scratch.

If you would like to change the default names of any of these objects that will be created through the setup, you can modify the constants referred to in this document.

Running the Configuration

Once the service account is properly set up, the configuration is ready to be run. This section will walk you through each step of the configuration process and the Twilio objects that are created or configured at each step.

Specify Twilio Account

The first step of the configuration is to specify the parent-level Twilio account that will be used for the rest of the setup process.

You can find the Account SID and Auth Token on the main page of your Twilio account. When clicking Next Appian will create the following in Twilio:

/ICC specify twilio account

Update Connected Systems

Appian will now display the credentials of the objects created to the user. This is the only time you will be able to copy these credentials. For security reasons, the setup process does NOT persist these values as constants or in the process model. It is highly recommended that you store these credentials outside of Appian in a secure manner. If you navigate away from this page prior to storing these credentials, you can navigate to your Twilio subaccount to retrieve them.

In addition to storing these credentials outside of Appian, you must also copy these values into the appropriate connected systems at this step to properly establish the connection to this newly created subaccount. On a separate tab, open Appian Designer. Navigate to the ICC Twilio Subaccount Credentials connected system and copy the username and password for the newly created subaccount into the credentials.

/ICC subaccount connected system

Repeat this process for the REST API credentials in the ICC Twilio REST API Credentials connected system.


Once these values have been correctly entered into the connected systems, navigate back to the setup and proceed to the next page. If the connected systems are not properly set up, an error will display, as the rest of the setup process depends on the connected systems being configured properly. If this occurs, please retrieve these credentials from the Twilio console and enter them into the connected systems before proceeding.

Specify Service Account API Key

In this step, you must copy the Twilio API key created for the service account in the creating service account section to the Twilio configuration. This will provide Twilio with the authenication to communicate to this Appian instance.


Once the credential are properly entered and the user clicks Create Twilio Objects, the following Twilio objects are created. As mentioned previously, you can modify the constants referred to below to change the default name of any of the objects that are created.

  • TwiML App for voice and messaging (constant name referenced: ICC_VAL_TWIL_TWIML_APPLICATION_NAME)
  • Workspace (constant name referenced: ICC_VAL_TWIL_WORKSPACE_NAME)
  • Task Queue #1 (constant name referenced: ICC_VAL_TWIL_TASKQUEUE_NAME_ONE)
  • Task Queue #2 (constant name referenced: ICC_VAL_TWIL_TASKQUEUE_NAME_TWO)
  • Workflow (constant name referenced: ICC_VAL_TWIL_WORKFLOW_NAME)
  • Chat Service (constant name referenced: ICC_VAL_TWIL_CHAT_SERVICE_NAME)
  • Phone Number Purchase (will always purchase the next phone number available in the country specified)
Add Workers

Following creation of these objects, you can now create workers in Twilio, which need to be associated with Appian users. These workers can also now be assigned queues in which to receive calls and chats.

When clicking Next, the following occurs with the users specified on this screen:

  • Added to associated Appian groups for security purposes
  • Created as workers in Twilio (except for Managers)
  • Added to the associated queues in Twilio (except for Managers)

Only Agents are created as Twilio workers since they require integration with Twilio for telephony capabilities. Any users added as Managers are not created as workers in Twilio, but rather just placed in the managers group in Appian for permissions to view the Manager Dashboard.

Following completion of this step, the Appian users which are associated with Twilio workers can be found in the ICC_WORKER table.


This screen will allow you to review all of the Twilio objects and IDs that were created (without exposing any sensitive information). If any part of the configuration process failed, you will receive an error on this page. If any errors are displayed, please ensure that your Twilio account is properly set up. You can also find this information in the "Twilio Identifiers" report.

If you would like to test your configuration to make sure it is set up properly, follow the steps below.

  1. Log in as a user that was added to the queues
  2. Open the Twilio Tester report
  3. Set the Twilio component to Calls or SMS
  4. Call/text the number displayed on the screen

If the Twilio component dynamically updates, you are properly configured! If this test was not successful, please see below for some possible troubleshooting steps.

  • If the Twilio component is not visible, make sure your user was added as a worker. Run the Update Twilio Workers action to add more workers.
  • If the Twilio component still does not load, make sure the subaccount and API key credentials are properly stored in the connected systems.
  • If the call was not routed to your user, log into Twilio to make sure the call was routed to a queue in which your worker is available and that the call was not picked up by another worker.
  • If the Twilio component does not update, make sure your browser is set up to allow access to the microphone.

Google Dialogflow API Key Configuration

Additional steps are needed to configure the previously set up service account and API Key with Google Dialogflow if your ICC site uses Google Dialogflow. Perform the following steps to complete the Google Dialogflow initialization.

  1. As an Appian Admin user, open the ICC_AI DialogFlow API Credentials connected system and authorize access to Google Dialogflow using the same Google account
  2. Return to the Dialogflow console, open the agent created earlier, and select Fullfillment
  3. Set the URL to the endpoint of the ICC_WS_AI_GCC_Fulfillment web API: https://<your Appian ICC site>/suite/webapi/fulfillment
  4. Set the Header item key value to Appian-API-Key and copy the API key created for Google Dialogflow