Chatlayer Documentation
Get in touchAbout Chatlayer
  • Welcome
  • What's new
  • Send feedback
  • start quickly
    • Leadzy tutorial
      • 0. Introduction
      • 1. New bot, new block
      • 2. Understand your users
      • 3. Collect and display user input
      • 4. Steer the conversation with Conditions
      • 5. Empower your bot with Actions
      • 6. Set up a channel and publish your bot
    • Templates
      • Banking
      • E-Commerce Returns
      • E-Bike Shop
      • E-Scooter Support
      • Feedback
      • Find Nearest Location
      • GPT
      • 🆕Gym
      • Job applications
      • Knowledge base AI template
      • Lead generation
      • 🆕NPS
      • Restaurant
      • Retail
  • navigation
    • Analytics
      • Dashboard
      • Customers
      • Conversations
      • User flow
      • Intents
      • 🆕Funnels [Beta]
    • Bot builder
      • Flows
        • Canvas functionalities
        • Collaborate with team members
        • Manage your flows
        • 🆕[Beta] Export and import flows
      • Bot dialogs view
      • Translations
      • Events
    • NLP
      • Dashboard
      • Intents
      • Expressions
      • Entities
      • Train
      • NLP settings
      • Improve
    • Knowledge base AI
      • Add content to your KBAI
      • Build your KBAI flow
      • Use your KBAI source URL in a button
      • Use tags to limit your KBAI content
      • 🆕Use Tables to store your KBAI questions
      • 🆕Manage handover where KBAI is unsatisfactory
    • History
      • Conversations
      • Execution logs
      • Versions
    • Channels
    • Tables
      • Create a table with records
      • Column types
      • Operate on your records
        • Insert record
        • Update record
        • Retrieve record
        • Delete record
      • API
    • Settings
      • Bot settings
      • Offloading
      • Variables
      • Voice
      • Import/Export
  • build your bot
    • Conversation design
      • Plan your bot
      • Conversation design workflow
    • Flow logic
      • Blocks
        • Message
        • Condition
        • Collect input
        • Action
      • Go-to connections
    • 🆕Emulator
    • Tips & best practices
      • Route your flow depending on the time
      • Improve the Not understood block
        • How to create better not understood messages
        • Not understood counter
        • Not understood Google search
      • Go to previous block
      • Recognizing a returning user
      • Skip introduction message
      • Route your flow depending on the channel
      • Reuse flows
      • Connect two bots to each other
  • understand users
    • Natural language processing (NLP)
      • Basic NLP concepts
      • Detect information with entities
        • Match entities
        • Contextual entities
        • System entities
        • Composite entities
      • NLP best practices
        • Word order and diversity of expressions
      • AI intent booster
      • Train your NLP
      • Context
      • NLP import & export
      • Sentiment analysis
    • Languages
      • Supported languages
      • Make your bot multilingual
      • Change language within the conversation
  • set up channels
    • Add a channel to your bot
    • All channels
      • 🚨Facebook Messenger [Deprecated soon]
        • Facebook Admin Removal
        • Facebook Webview Whitelisting
        • Facebook Messenger API updates for Europe
      • 🚨Google Assistant [Deprecated soon]
      • Webhook
      • Web
        • 🚨Web V1 [Deprecated]
          • Customize web widget
          • Live example web widget
        • 🆕Web V2
          • 🆕From Web V1 to V2
          • 🆕Web V2 methods and options
    • Sinch Conversation API
      • Configure your Sinch Conversation API
      • 🆕 Make the most of RCS with Carousels
      • WhatsApp Business API
  • integrate & code
    • API calls
      • Configure your API integration
      • Advanced API features
      • V1 API Reference
      • Custom integrations 101
    • Code editor
      • [Example] Sending data to Airtable (POST)
      • [Example] Retrieving data from Airtable (GET)
      • [Example] Making SOAP requests
    • App integrations
      • Airtable
      • Freshdesk
      • Freshdesk Messaging
      • 🆕Gmail
      • Intercom
      • Mailgun
      • OpenAI: GPT-3, ChatGPT and GPT-4
      • Salesforce
      • 🆕Slack
      • Topdesk
      • Zendesk Support
      • Zendesk Sunshine (beta)
    • 🆕Expression syntax
    • Human handover & live chat
      • Sinch Contact Pro
      • #Interact
      • Genesys Cloud
      • Offloading Webhook
      • Salesforce Service Cloud
      • Sparkcentral by Hootsuite
      • Zendesk Chat
    • Chatlayer messages specifications
  • Publish
    • Publish your bot
      • Publish a flow
  • Analyze & maintain
    • Analytics definitions
    • Data retention
    • Maintenance
    • Session
    • Track events for analytics
  • VOICE
    • 🆕Send bot response as audio
    • Voicebots
      • Create a voicebot
      • Voicebot-specific actions
      • Test your voicebot
      • From chat to voice
  • access & support
    • Identity & Access
      • Single Sign-On (SAML SSO)
    • Billing & subscription
    • Get in touch
    • Chatlayer glossary
    • SaaS Regions & IP Ranges
    • Status
    • Debug your bot
      • No correct response
      • Collect input not working
      • Video isn't working
Powered by GitBook
On this page
  • Template overview
  • How to customise this template
  • Flow: General
  • Flow: Returns
  • Flow: Nearest post office
  • NLP

Was this helpful?

  1. start quickly
  2. Templates

E-Commerce Returns

PreviousBankingNextE-Bike Shop

Last updated 1 year ago

Was this helpful?

Template overview

This template allows your customers to easily return an item they bought in your online store.

After your customer chooses which item they want to return, the bot asks for the reason why they are returning the item (e.g., wrong size or color), generating valuable customer feedback. Additionally, based on the reason for return, the bot will offer them the option to order an alternative item that does meet their requirements.

The template uses a sneaker store as an example, but it can of course be customised to fit any type of online store. Keep reading to learn how you can customise this template for your own organisation.

How to customise this template

Make sure to always after loading a template!

This template uses two third party services:

  1. Airtable, as a database for customer orders

  2. Google Maps API, for finding the nearest post office

To let your bot interact with these services you will need an API key for each and configure these in the Action blocks where the bot makes the API calls.

Using another service to manage your customer orders? You can link any type of database to this bot, as long as it has an API. Read more about our API integrations .

Below is an overview of the key blocks in each flow of the bot. Here we will walk you through how to configure the connection with the Airtable and Google Maps APIs, as well as some other tips to customise this template for your business.

Flow: General

Block: Introduction

Modify the text in this block so it reflects the branding of your own business. Replace The Sneaker Store by the name of your business.

Block: Use cases

If your bot is capable of handling other use cases besides returns, introduce them to the user here.

Block: Offloading email yes

In this block under the Talk to Human subflow, replace the email address by your business’ own support email address.

Flow: Returns

Block: Returns

This block is the start of the Returns flow and is triggered by the Request_return intent.

This intent has been trained to detect both the item the customer wants to return and their reason for returning it in their message. For example, the customer might say: "I want to return my Stan Smiths because they're too small" The bot will then recognise Stan Smith and too small as the @model and @reason_return entities respectively and save them to variables of the same name. This way the bot won't have to ask again for this information later on in the conversation.

Blocks: Get email address, Get credit card digits

In this flow we ask for the customer’s email address and last four digits of their credit card as authentication to look up their past orders. If you want to authenticate your customer in another manner, replace these blocks by your authentication method of choice. When you first imported this template, the blocks will suggest you use test@sinch.com as email address and 6789 as credit card digits to authenticate. You can use these credentials to test the template with the sample order data, before connecting the bot to business' own orders database. You should remove these suggestions when you're ready to publish your bot.

Block: Look up orders

After the user has given their email address and last 4 digits of their credit card, this block will look up their orders in an external database. By default, this template will look up the orders in an Airtable using the Search Record function of our Airtable integration.

Block: Register return in Airtable

This action block changes the return status of the item to be returned in Airtable with the Update Record function. As in the Look up orders block, you will need to connect to your own Airtable account and replace the example base and table IDs by your own.

This block also sends an email to the customer with their return label. Change the destination address in the return label to your own business’ address.

Block: Look up other colors

If the user is returning their item because they don’t like the color, this block will look in the Airtable database if it is available in other colors. In our example Airtable base, you will find these other colors in the catalog table. As in the other Airtable integration blocks, you will need to connect to your own Airtable account and replace the example base and table IDs by your own.

Block: Add new order in Airtable

After the user has given the details for their replacement order, this block adds the new order in the new_orders table in Airtable using the Create Record function. Like in the other Airtable integration blocks, you will need to connect to your own Airtable account and replace the example base and table IDs by your own.

Flow: Nearest post office

NLP

In addition to changing the flows, you will also need to make some changes to the entities in the NLP section of your bot. The contextual entity @model and the match entity @model_match capture the products available in the online store. You will need to replace the example values by the names of the products in your own store.

If you want to offer your bot in other languages than English and Dutch you will also need to add the ISO 639-1 code for that language as a value in the contextual entity @tempLanguage.

You can read more about Chatlayer’s Airtable integration .

Not using Airtable within your organisation? You can link any type of database to this bot, as long as it has an API. Read more about integrations .

You will need to customise this block by connecting it to your own Airtable account and your own Airtable base. However, when you have newly imported the Returns template, it will be linked to . The order data is in the Orders table. Feel free to use it as an example of what the data in your own Airtable should look like, but make sure to replace it once you start using the bot for your own organisation.

If you do not yet have an Airtable account set up in Chatlayer, you can do so by clicking Connect new account and following the steps in the pop-up window. You will need your Airtable API key for this, which you can find on your .

Once you have set up your own Airtable base, head back to the block in Chatlayer. In the Base field replace the ID of the example Airtable base with the ID of your own Airtable base. In the Table field replace the example ID with the ID or name of the table in your own Airtable base where you store the order data. You can find your Airtable's base ID and table IDs , or in the URL of your table view.

After the order has been added in Airtable, you should also add a payment link to the record for the new order in the payment_link field. You can do this by creating a Zapier integration that automatically creates a payment link with your payment provider (for example Stripe) once a new record is added in Airtable, and then adds that automatically adds then payment link in Airtable. You can find more info on how to use Zapier . Alternatively you can also create a custom integration directly in Chatlayer with your business’ payment provider to generate a payment link and add it to your Airtable.

With this flow, your customers can find the post office closest to their delivery address. The functionality of this flow is the same as the Find nearest location pre-built flow template. To find out how to customise this flow, you can consult the tutorial for that flow template .

update the NLP
here
here
here
this Airtable
Airtable account page
here
here
here