Overview

Exotel Shopify Integration helps verify customers’ numbers resulting in confirmation/cancellation of cash on delivery (COD)  or all orders. This is achieved via automated IVR calls or SMS-based verification through Exotel’s Cloud Telephony Platform. This will automate order verification without manual intervention and thus save time and effort.


Key Features:

  • OTP-based verification.

  • IVR Call-based verification.

  • Auto cancel an order within Shopify if the customer cancels the order while the confirmation process

  • Fallback options for IVR calls 

    • Send an SMS with a link, which opens a web page with order details and has an option to confirm/cancel the Order.

    • Send SMS with Missed Call Number to Confirm the order.

  • Reporting - Call logs, SMS logs, Order History with Status, Missed Call Logs.

Note: Fallback will be applicable only if call retries exceed the max limit, OR for DND numbers if DND calling is not activated on Exotel Account.

 

Key Benefits:

  • Automated Order Verification: You can automate order verification without manual intervention and thus save time and effort.

  • Avoid returns and Fake orders: Helps validate COD orders thus avoiding bogus orders ensuring the operational cost spent on genuine orders and avoiding returns, fake orders, and saving on shipping costs.

  • Multiple options of Verification: Flexibility for shop owners to choose their preferred order verification process and easily switch between them as per business requirements.

  • Reports: Detailed reports are available within the App which helps in tracking order status, and its relevant Call and SMS data. No need to log in to different platforms.

Note: Please ensure “Shipping address phone number” is set as a required field under the Customer Information section in the Checkout settings page to allow the App to process order verification.


Installation Steps:

Following are the steps for installation of SMS, IVR Verification and C2C App:

  1. Install Shopify App from Shopify Marketplace. 

  2. Click on “Install” in the bottom-right corner to begin the installation. 

  3. After successful installation, it brings you to the App’s home page. 

  4. Initially, the Shopify App Status would be PartiallyInstalled because you are yet to set up configuration details and the Exotel App status would be uninstalled until the Exotel Shopify App is installed from the Exotel marketplace. For the successful functioning of the app, both statuses need to be Installed.

  5. To proceed with the set-up, click on the “Go to Settings” button from the App Info page.


Contact Details page: 

Please enter your phone number (with country code) which could be used for further communication and click on “Save and Proceed” to proceed further.


Settings page: 

This is where the overall Shopify and Exotel settings are configured. 

  • Order Verification Settings

    • Verification for: select order type for verification

      • COD Orders: select this option for verification of only Cash on Delivery (COD) orders.

      • All Orders: select this option for verification of all orders.

    • Verification type: select the mode of verification

      • IVR Call: select this option for order verification via automated IVR call, asking for input from the user to confirm, cancel or request a callback.

      • OTP via SMS: select this option if you want orders to be verified via OTP

      • In both, cases verification happens after the order is placed.

    • Exotel Account Subdomain 

      • This is your Exotel account’s cluster, select one of the given options. For more details click here  

    • Exotel Account SID 

      • This is your Exotel SID. You will find it in your Exotel account under Settings -> API -> Account sid. 

    • Exotel API KEY (USERNAME)

      • This is your Exotel API Key. You will find it in your Exotel account under Settings -> API -> API KEY (USERNAME).

    • Exotel API TOKEN (PASSWORD)

      • This is your Exotel token. You will find it in your Exotel account under Settings -> API -> API TOKEN(PASSWORD). 

    • Prev Button: This button can be used to traverse to the previous setting page without saving the data.

    • Save and Proceed Button: This button will save the settings and proceed to the next setting page.

    

Note: For OTP Based Verification select "SMS, IVR Verification and C2C" App from the Shopify Checkout Page's Post Purchase page section.


IVR Call Settings:

Settings required to make an Automated IVR call for order verification need to be configured here. Once an order is placed, an IVR call will be made to the non-DND numbers for order verification. The IVR call flow can have options for confirmation, cancellation, and /or requesting a callback. 



  • First call time: This setting determines when the first call is to be made for order verification after an order is placed. There are two options here :

    • Immediate: The first attempt at the call would be made as soon as an order is placed.

    • After: The first attempt of the call would be made after X mins of order placement. The minutes are to be entered in the field.

  • ExoPhone/Caller ID: Enter the virtual number to be used for the automated IVR calls. Virtual numbers are available in the Exotel account under the Exophones section.

  • Flow ID: Enter the IVR Flow ID to be used for the automated IVR calls. The IVR flow is expected to accept user input for confirmation, cancellation, or callback requests. Please ensure the pass-throughs received in the email are correctly placed in the flow to capture the inputs and play dynamic order details(if any)

  • The number of retries (0-5): The number of times retries calls to be made to the customer in case of call not completed/no input/incorrect input received. The value can be between 0 to 5, if it is set to 0/blank, no retry calls will be made.

  • Retry call interval (mins): The duration in minutes between each retry attempt made to the customer. The value can be between 10 to 120 minutes. However, if the number of retries is set to 0, the retry call interval should be 0. 

  • Timezone: Select your timezone here. Eg: for India select “UTC(+05:30) Asia/Calcutta”

  • Start retry calls from The value to be used as the start hour for the retry schedule. Retry calls will only be made between the start and end times. Enter time based on your selected timezone. For retry calls falling outside this range, the calls will be scheduled at the start time of the next day.

  • End retry calls at The value to be used as the end hour for the retry schedule.  Retry calls will only be made between the start and end times. Enter the time based on your selected time zone. For retry calls from outside this range, the calls will be scheduled at the start time of the next day.

  • Tag to be updated on confirmation: The tag is to be updated against the Shopify order upon order confirmation input over the IVR call. This is preloaded with a default value but can be updated if required. This is a mandatory field and cannot be empty.

  • Tag to be updated on cancellation: The tag is to be updated against the Shopify order upon order cancellation input over IVR call. This is preloaded with a default value but can be updated if required. This is optional, if no cancellation is required over an IVR call, skip the option in the flow and keep the field as blank.

  • Tag to be updated on callback request: The tag is to be updated against the Shopify order upon order callback request input over IVR call. This is preloaded with a default value but can be updated if required. This is optional, if no callback is required over an IVR call, skip the option in the flow and keep the field as blank.

  • Cancel order on Shopify if canceled over IVR: Select the checkbox to cancel the order in Shopify when the order is canceled over the IVR call.

  • Prev Button: This button can be used to traverse to the previous Setting page without saving the data.

  • Configure Fallback Button: This button will save the settings configured and proceed to Configure Fallback Setting Page.

  • Save and Finish Button: This button will save the settings configured and navigate to the App Info page.

If you have selected IVR call-based verification, the shop owner would have received an email with pass-throughs to capture IVR inputs and to read out order-related dynamic content on the call.

 

Note for DND numbers:

If DND calling is not available for your Exotel account then Fallback SMS will be used for order verification, if configured in the settings. 


IVR Fallback Settings:

IVR Fallback Settings required to send fallback SMS for order verification need to be configured here. If configured, the fallback SMS will be initiated if IVR call retries are exhausted or a customer number is a DND number. There are two types of fallback settings, SMS with Link SMS with Missed Call.




  • SMS with Link: If this option is selected an SMS with a link for order verification will be sent to the customer. The link will display order details and accordingly Confirm OrderCancel Order, and/or Request Callback buttons will be displayed.

    • SMS Sender ID: The Sender Id to be used to send the SMS to customers. Sender ID is available in the Exotel account under the Settings -> Sender ID section. The Sender ID must be approved on both DLT and Exotel portals.

    • DLT Entity ID: This is a unique numeric identifier for your business. It can be found on the DLT operator portal. This is a mandatory field for businesses operating in India else it is optional.

    • DLT Template ID: This is a unique numeric identifier for your SMS Template. This is a mandatory field for businesses operating in India else it is optional.

    • SMS template Link: SMS template for Fallback SMS with link-based order verification. Dynamic placeholders %ordernumber% , %ordername% , %orderamount%, %link% are supported. %link% is a mandatory placeholder in the template. Please replace {XYZ Shop} in the template with your shop name.

    • SMS link expiry hour (1 to 72): The duration after which the link present in Fallback SMS will expire. The default value is 48 hours and the maximum value can be 72 hours. 

    • SMS Encoding Type: Encoding format to be used to encode SMS content while sending SMS.

    • Tag to be updated on confirmation: The tag will be updated against the Shopify order upon order confirmation over the link. This is preloaded with a default value but can be updated if required. This is a mandatory field and cannot be empty.

    • Tag to be updated on cancellation: The tag will be updated against the Shopify order upon order cancellation over the link. This is preloaded with a default value but can be updated if required. This is optional if no cancellation is required over the link keep the field blank and accordingly no cancellation button will be displayed on the order verification link page.

    • Tag to be updated on callback request: The tag is to be updated against the Shopify order upon order callback request over the link. This is preloaded with a default value but can be updated if required. This is optional, if no callback is required over the link, keep the field blank, and accordingly, no callback request button will be displayed on the order verification link page.

    • The number of SMS retries (0 to 5): The number of times fallback retry SMS attempts are to be made to the customer in case of no action is taken by the customer. The value can be between 0 to 5, if it is set to 0/blank, only 1 fallback SMS would be sent and no retries will be attempted.

    • The time interval between retries (Mins): The duration in minutes between each fallback retry attempt made to the customer. The value can be between 10 to 60 minutes. However, if the number of SMS retries is set to 0, the Time interval between the retries field should be 0.

    • Cancel order on Shopify if canceled over Link: Select the checkbox to cancel the order in Shopify when the order is canceled over the link.

    • Prev Button: This button can be used to traverse to the previous Setting page without saving the data.

    • Save and Finish Button: This button will save the settings configured and navigate to the App Info page.


  • SMS with MissedCall: If this option is selected an SMS with an ExoPhone number is initiated to the customers for order verification. The customers need to give a missed call on the ExoPhone to confirm the order(s).

    • Confirm the latest pending order on missed call: Latest pending order for the customer will be confirmed on a missed call.

    • Confirm the latest 3 pending orders in the last 30 days on missed call: Latest 3 pending orders in the last 30 days for the customer will be confirmed on a missed call.

    • SMS Sender ID: The Sender Id to be used to send the SMS to customers. Sender ID is available in the Exotel account under the Settings -> Sender ID section. The Sender ID must be approved on both DLT and Exotel portals.

    • DLT Entity ID: This is a unique numeric identifier for your business. It can be found on the DLT operator portal. This is a mandatory field for businesses operating in India else it is optional.

    • SMS Encoding Type: Encoding format to be used to encode SMS content while sending SMS.

    • Missed call SMS DLT template ID: This is a unique numeric identifier for your SMS Template. This is a mandatory field for businesses operating in India else it is optional.

    • Missed call SMS template: SMS template for Fallback SMS with missed call-based order verification. %exophone% is a mandatory placeholder in this template. In case of selection for verifying the latest 3 pending orders, do not use %ordernumber%, %ordername%, and %orderamount% placeholders in this template. Please replace {XYZ Shop} in the template with your shop name.

    • Confirmation SMS post missed call DLT template ID: This is a unique numeric identifier for your SMS Template. This is a mandatory field for businesses operating in India else it is optional. 

    • Confirmation SMS template post missed call: Confirmation SMS template for orders verified by missed call. Dynamic placeholders %ordernumber% , %ordername% , %orderamount%, %exophone% are supported in this template. Please replace {XYZ Shop} in the template with your shop name.

    • ExoPhone for missed call: The virtual number assigned to the flow with missed call verification passthrough using which customers can confirm the orders via missed calls.

    • Tag to be updated on confirmation: The tag will be updated against the Shopify order upon order confirmation over the link. This is preloaded with a default value but can be updated if required. This is a mandatory field and cannot be empty.

    • The number of SMS retries (0 to 5): The number of times fallback retry SMS attempts are to be made to the customer in case of no action is taken by the customer. The value can be between 0 to 5, if it is set to 0/blank, only 1 fallback SMS would be sent and no retries will be attempted.

    • The time interval between retries (Mins): The duration in minutes between each fallback retry attempt made to the customer. The value can be between 10 to 60 minutes. However, if the number of SMS retries is set to 0, the Time interval between the retries field should be 0.

    • Prev: This button can be used to traverse to the previous Setting page without saving the data.

    • Save and Finish: This button will save the settings configured and navigate to the App Info page.


Note for System driven tags :

  1. The "ivr_retry_limit_reached" tag will be updated in Shopify orders in case IVR retries have been completed without a response.

  2. The "fallback_retry_limit_reached" tag will be updated in Shopify orders if fallback SMS retries are completed without a response.


OTP SMS Settings:

Settings required to initiate an OTP SMS for order verification need to be configured here. Once an order is placed, an SMS with the OTP will be sent to the customer number added to the address. Customers need to enter the OTP on the post-purchase extension page to verify the order.

Please enable the OTP extension page for your Shop by selecting the "SMS, IVR Verification and C2C" App from the Shopify Page's Post Purchase page section on the Checkout settings page.




  • SMS Sender ID: The Sender Id to be used to send the SMS to customers. Sender ID is available in the Exotel account under the Settings -> Sender ID section. The Sender ID must be approved on both DLT and Exotel portals.

  • DLT Entity ID: This is a unique numeric identifier for your business. It can be found on the DLT operator portal. This is a mandatory field for businesses operating in India else it is optional.

  • DLT Template ID: This is a unique numeric identifier for your SMS Template. This is a mandatory field for businesses operating in India else it is optional.

  • SMS Encoding Type: Encoding format to be used to encode SMS content while sending SMS.

  • SMS Template: SMS template for OTP SMS-based order verification. Dynamic placeholders %ordernumber% , %ordername% , %orderamount%, %otp% are supported.  %otp% is a mandatory placeholder in the template. Please replace {XYZ Shop} in the template with your shop name.

  • The number of times OTP can be resent (0 to 5): The number of times the customer can request to resend the OTP. The value can be between 0 to 5.

  • Show OTP resend button after every (seconds): The duration in seconds after which the user can request another OTP.

  • Tag to be updated on OTP verification: The tag is to be updated against the Shopify order upon order confirmation by entering a valid OTP. This is preloaded with a default value but can be updated if required. This is a mandatory field and cannot be empty.

  • A number of times incorrect OTP can be entered (0 to 5): Number of times a customer is allowed to enter an incorrect OTP. The value can be between 0 and 5.

  • Prev: This button can be used to traverse to the previous Setting page without saving the data.

  • Save and Finish: This button will save the settings configured and navigate to the App Info page.

 

Note for SMS config to be done in Exotel :

Please configure SMS settings in your Exotel account and then fill in the details here accordingly. For further assistance reach out to hello@exotel.in.

 

Note for System driven tags :

  1. The "resend_otp_limit_reached" tag will be updated in Shopify in case the resend OTP option limit is exhausted.

  2. The "incorrect_otp_limit_reached" tag will be updated in Shopify in case the OTP verification limit is exhausted by incorrect inputs.


Call History Page:

This page will display the Call History for outbound calls. The following filters are supported:

 

  • Customer Number: Call history records matching the customer's phone number will be displayed.

  • Agent Number: Call history records matching the agent's phone number will be displayed (applicable for only click-to-call)

  • Order Number: Call history records matching the order number will be displayed.

  • Direction: Call history records matching the call direction will be displayed.

  • IVR Input: Call history records matching the IVR Input provided by the customer will be displayed.

  • From Date: Call history records starting from this date will be displayed.

  • To Date ( Max 7 Days ): Call history records up to this date will be displayed. The From and To date range can be a maximum of up to 7 days.


SMS History Page:

This page will display the SMS History. The following filters are supported:

 

 

            

  • Customer Number: SMS history records matching the customer's phone number will be displayed.

  • Order Number: SMS history records matching the order number will be displayed.

  • SMS Status: SMS history records matching the selected SMS status will be displayed.

  • From Date: SMS history records starting from this date will be displayed.

  • To Date ( Max 7 Days ): SMS history records up to this date will be displayed. The From and To date range can be a maximum of up to 7 days.

 

Missed Call History Page :

This page will display the Missed Call History. The following filters are supported:

 

 

  • Customer Number: Missed call history records matching the customer's phone number will be displayed.

  • Order Number: Missed call history records matching the order number will be displayed.

  • From Date: Missed call history records starting from this date will be displayed.

  • To Date ( Max 7 Days ): Missed call history records up to this date will be displayed. The From and To date range can be a maximum of up to 7 days.

 

Order History Page :

This page will display the Order History. The following filters are supported:

 

 

  • Customer Number: Order history records matching the customer's phone number will be displayed.

  • Order Number: Order history records matching the order number will be displayed.

  • Verification Status: Order history records matching the selected order verification status will be displayed.

  • From Date: Order history records starting from this date will be displayed.

  • To Date ( Max 7 Days ): Order history records up to this date will be displayed. The From and To date range can be a maximum of up to 7 days.

  • Total Orders: Total number of orders processed by the App for order verification.

  • Confirmed Orders: Total number of orders confirmed via the App.

  • Canceled Orders: Total number of orders cancelled via the App.

  • Callback Request Orders: Total number of orders for which callback was requested via the App.

  • Pending Verification Orders: Total number of orders for which verification is pending via the App.