Salted CX Help and Documentation

Salted CX contact center analytics and automated quality assurance documentation

About Salted

Salted CX uses AI and human input to surface opportunities from the depths of conversations. Anybody in the company from management to agent can jump from built-in dashboards directly to the customer journeys, understand what can be improved, and act on it. Salted CX helps to improve the customer experience step by step.

Salted CX gathers conversation content and metadata from your contact center platforms and brings them to one place as you would have just one unified contact center platform.

All Conversations in One Place

Do you have multiple platforms for talking to customers?

Salted CX takes all conversations from all connected data sources and connects them to a single Customer Journey. Customer journey shows all conversations with a single customer in one pane in the order in which they happened.

Learn more about the Customer Journey.

AI Helps you to Uncover Opportunities

Have you ever had a hunch about what customers say in conversations but you could not explore it further?

Salted CX offers a semantic search that searches in 100% of your recent conversations for anything that has a similar meaning to what you search for. You do not know how customers express themselves as semantic search searches even expressions that have not a single word in common with what you wrote as long as the meaning is similar.

When you find an issue or an opportunity you can tag the conversation. Once you tag 5 or more similar situations in the conversation Salted CX can search for the same situation in all conversations. This helps you to understand how often the situation happens and whether it is worth your attention. You can always jump to complete customer journey from any AI finding and uncover what exactly is happening and what you can do better.

Learn more about Semantic Search and Auto Reviews.

Jump from Dashboards to Customer Journey

Ever wanted to know why customers said they were not happy? Why do conversations take longer than usual? Why a sale did not happen? Why do agents refund customers more often than the rest of their team?

In Salted CX you can go from high-level numbers and statistical data to individual conversations that are behind those data. So you can understand what is the root cause of any issue or whether there is an opportunity waiting.

With Salted CX you will know who to go to and what to tell them to help them improve or enforce their good behavior.

Learn more about Drill-down from Dashboards.

Start with Built-in Content

Ever had to provide a long list of requirements for your reporting needs? Ever waited weeks or even months to get any visibility?

Salted CX ships with built-in dashboards, insights, and metrics focused on different areas watched in the contact center. You can start to watch industry-standard metrics on day one just by opening Salted CX.

Learn more about Dashboards.

Build Dashboards without Coding

Ever wanted to look into your data but it took days or weeks to get a report from your IT department? Wanted to quickly check something suspicious in conversations but had to go through a prioritization process and justify business value before getting started?

In Salted CX you can explore data on your own without coding. Use built-in metrics to build your own insights and dashboards.

Dashboards

Dashboards allow users to combine multiple visualizations on a single canvas and view them from various perspectives.

Built-in Dashboards Filters

Dashboards contain filters to focus report only on specific subset of engagements. Filters influence every visualization in the dashboard and override the filters on visualizations level.

Use filters to focus on specific set of teams, agents, conversations and reviews. Filters help you work on the specific subset of your contact center traffic that is the most relevant for you.

On most dashboards these are the filters:

  • Date. The date filter for when the engagements started.
  • Source. The connected system or platform that the engagements are extracted from.
  • Location. The location associated with the engagements.
  • Direction. The direction of the conversations enables to choose whether you focus on Inbound, Outbound or Internal conversation.
  • Channel. The communication channel of the engagements.
  • Engaged Department. Department in which the agent was when engaged in the conversation.
  • Queue. In which the customer was waiting before engaging with the agent.
  • Engaged Team. Team in which the agent was when they engaged in the conversation.
  • Agent. Agent engaged in the conversation.
  • Outcome. Outcome of the engagement, often called disposition or wrap up code.

Some dashboards can contain different set of filters if they make sense for the use case the dashboards are intended for.

icon
You cannot customize filters on the built-in dashboards. To use different filters create your own copy of the dashboard. Learn more about Custom Dashboards

Hidden Filters

Some dashboards may have hidden filters that influence the visualizations in that dashboards. Hidden filters can be used to focus the dashboard on the subset of data it is intended to be used for and avoid misinterpretation of the data. Hidden filters are a convenience feature, not a security feature.

Locked Filters

Locked filters are similar to hidden filters in that they are applied to the dashboard and cannot be changed. However these filters are

Reset Filters

You can click the reset filters button to set the filters to their default values for the current dashboard. This enables you to quickly start any of your explorations from the start again.

Dashboard Views

You can save the current filters in dashboards for later use using saved views. This is useful to have dashboards filtered to what is the most important for each user. For example this can be their team, their department, agents that need more help, etc.

Each user has their own views. Views created by one user is not visible by other users.

Save Filters

When you want to save your current filters:

  1. Click My views in the top right corner of the dashboard
  1. Click Create view in the menu
  1. Name your saved view so it is easy to remember what data it shows
  1. Check Save as default, if you want the newly created svaed view to be used by default when you open the dashboard
  1. Click Save

From this point you can easily return to your filtering criteria with just two clicks.

Use Saved Views

To load the saved filters:

  1. Click My views
  1. Click any of the saved views in the menu

To choose which saved view is used by default when you visit the dashboard, click ❸ Set as default option that appears when you move pointer over the menu item.

To delete any saved view, click ❹ trash icon that appears when you move pointer over the menu item.

Drill Downs

The dashboards are interactive. You can click attributes and metrics in charts and tables to explore them further. Items that you can click are bold. When you click these items they can either take you to a specific dashboard or to Customer Journey.

You can also add drill-downs to your custom dashboards. Learn more about Drill Down from Dashboards.

Visualizations

Visualization are individual charts and tables. You can view the visualizations individually or you can put more of them into one dashboard. Visualizations enable you to browse charts and tables people have already created in your account and also create a new visualization.

Navigation

On the left hand you have listed all the visualizations available in your account. You can use search :r1: to search for visualizations by their name.

The visualizations are organized into these sections:

  • Favorites :r2: contain visualizations that you have marked as favorite using the star icon :r7: in the toolbar. Favorites are individual for you and each use can have their own favorites.
  • Shared :r3: contain visualizations that were created by all users in your account.
  • Salted CX :r4: contain visualizations that are available out of the box with the Salted CX account.

You can create your own visualization by pressing the New Visualization button :r5:.

As all items in Salted CX each visualization has its unique web address. You can easily copy the address from the browser URL and send it to your colleagues so they can have a look on the visualization.

Built-in Visualizations

You cannot edit nor delete built-in visualizations. You can use these visualizations to build custom dashboards or use filters :r9: to focus on specific data. You can use all the view-only features depending on the visualization shows including Ask and drill downs to the customer journey.

Press Save as new :r8: to create your own visualization based on the built-in one. This enables you to use the built-in visualization as a starting point and modify it to better suit your business needs.

Custom Visualizations

Visualizations created by users in your account are automatically available to other users. Users with edit permission can also edit these visualizations.

Press Edit :r11: button to open the visualization for editing. For custom visualizations you can still create a copy with Save as new :r8: option in the menu if you want to keep the current visualization intact.

You can delete the visualization by pressing the Delete :r14: menu item.

Drill Downs

If any visualization contains individual customers, contacts, conversations, engagements, reviews or transactions you can click on the given item to open customer journey related to it. This enables you to quickly explore root causes behind different issues.

If any visualization contains list of individual agents you can click them to open their agent profile.

Ask

If any visualization contains list of individual engagements or reviews you can click Ask about engagements :r10: or Ask about reviews button to ask questions about the content of the conversations or contents about the customer reviews.

Save Selection

If any visualization contains list of individual engagements or reviews you can click Save engagements as selection :r13: or Save reviews as selection. Saved selection enables you to store the list of engagements that are currently listed in the visualization (matching filtering criteria at the time when you save them) for later use.

You can use selections to have a sample of conversations for training, testing automatic QA, etc.

Customer Journey

Customer Journey provides a view of all conversations with a customer from the first to the last engagement the customer had with you. Customer Journey enables you to better understand the end-to-end experience of your customers, your products, and services they use.

Customer Journey view is split into 3 vertical scrollable panes from left to right:

  • Navigation Pane — High-level overview of the Customer Journey that helps to understand how often the customer contacts you, by using what channels, and what was outcome of the conversations. Useful for navigation in the entire customer experience.
  • Conversations Pane — Detailed view of individual engagements including their content — transcripts. Useful for uncovering root causes behind issues and identifying opportunities.
  • Action Pane — Pane that enables you to work with findings in the Conversation Pane.
icon
The number of engagements in a single customer journey is limited to the 500 most recent.

Navigation Pane

The leftmost pane shows all Conversations and Engagements on the high level.

  • The empty channel symbol represents an Engagement handled without human intervention.
  • The full channel symbol represents an Engagement handled by a human.

Click any Engagement in the Customer Journey pane and the Conversations Pane scrolls to the point in the Customer Journey that you clicked.

Scroll the pane if there are many Conversations and Engagements with the customer.

Conversations

Each conversation win Customer Journey begins with the date when the conversation started and an icon indicating the conversation direction. Individual Conversations are split by a separator.

Each conversation lists engagements that happened in it. Each engagement shows its channel, queue (or agent if the queue name is not available), and the outcome (disposition code, wrap-up code) of the engagement.

Overview Pane shows a thin bar on the left side indicating which conversations are visible in the Conversations Pane. This simplifies navigation and understanding of the customer journey if the customer journey is long.

Conversations Pane

The middle Conversations Pane shows detailed contents of all conversations with one customer. The customer journey is broken down into individual conversations sorted by the time when the conversations started. The oldest conversations are on top and the most recent conversations are at the bottom. If two conversations overlap then there is a small notification that another conversation started. You can click the notification to scroll to that conversation.

Engagements

Each conversation shows all agent engagements within that conversation. If there are multiple engagements in a single conversation — for example, two agents talk to the customer — the turns within the engagements are sorted chronologically so when multiple agents are talking to the customer you understand the flow of the conversation.

When a new engagement start customer journey shows who joined the conversation, the start time of the engagement, whether they are some reviews. You can also Ask about anything related to the engagement.

More details in article Engagements in Customer Journey and Voice Engagements in Customer Journey.

Turns

Turns represent a single message or action of participants in the conversation. The turns have colors depending on who performed them. Customers turns are green, human agents are blue and bot turns are purple.

On top of each turn you can see the following information:

  • The channel is represented by an icon. As you can have multiple channels mixed in a single conversation the icon helps you identify what channel was used for that specific turn.
  • Participant name which is either the agent name, bot name, or “Customer”. We do not show the customer's name or contact details to limit the exposure of the customer's personal information.
  • Response time to the previous messages from another participant.

If there are multiple turns from the same participant within one minute they are grouped and do not contain repeat the above information.

Example messages in Conversation Pane

Action Pane

Action Pane provides a set of additional information and tools regarding the current customer journey and your selection.

Prompting

You can use prompting to ask any question about the selected engagement and chose from a concise or detailed answer. The last entered prompt is remembered so once you select a different engagement it will be automatically executed.

Forms

This panel allows you to select a form created in the Forms editor. Each form has a property that designates if it can be displayed on the level of engagement, customer turn, agent turn or bot turn.

Reviews

Reviews enable you to view and provide your feedback for individual turns and entire engagements. For reviews generated by humans, you can provide feedback if you approve or dispute them. For AI generated reviews you can provide feedback if they are correct, incorrect or unclear.

Similar Turns

Displays turns in the conversations that are semantical similar. See more in Similar Turns.

Logical Model

A Logical Model is the way the data in Salted CX are organized, making them easy to use for a wide range of analytical needs. The Logical Model is designed to be easy to understand for people without deep technical knowledge. Understanding the logical model is helpful for creating custom metrics, building reports, and designing dashboards.

icon
The data available in the Logical Model varies depending on the connected data sources and their configuration. The Logical Model can work perfectly fine if the data are not complete. A subset of metrics will be available.

Data Sets

Data sets represent different kinds of items stored in the logical model. Salted CX uses a limited set of data sets that enable users to quickly navigate in it.

Each data set has a set of attributes, facts, and references to related data sets.

EntityDescription
ActivityDetailed break down of agent load and activity.
AgentThe person or a service that interacts with customers on behalf of the company. Each engagement is associated with one agent.
CustomerThe person that the company engages with during the conversation. We recommend that all engagements in a single conversation be associated with a single customer although it is technically possible to have conversation where multiple customers are involved.
EngagementIndividual engagements between agents and customers. Multiple engagements can be grouped into one conversation.
External AgentPerson or an organization outside of your company that can engage with the customers in the conversations.
QuestionQuestion that was answered in a review.
ReviewReview represents individual responses, comments and tags associated with Engagements. Reviews contain feedback from customers, agents, reviewers and automatic reviews.
ReviewerPerson or a service that provides Reviews for Engagements.
ServiceService (or product) primarily associated with the conversation. This dataset enables you to attribute conversations to specific, products and eventually partners on whose behalf you engage in conversations with customer.
TransactionTransactions that happened during this engagements. Transactions can have associated revenue and costs to enable reporting on financial aspects of the engagements. There can be multiple transactions for a single Engagement.
TurnGranular breakdown of individual engagements. Turns represent different events in different types of engagements. In messaging they represent a single message sent by a participant, in voice conversation, they represent a single talk by one of the participants, in menu engagements they represent individual menu steps, etc. Turns are not available for reporting. They are visible in the customer journey.

Attributes

An Attribute is a property of a Data Set that can be used for segmentation and filtering of data visible in the reports and dashboards.

icon
Attribute and label values are limited to 100 characters. If an attribute or label value is longer than 100 characters, the value is trimmed. Whenever a value is trimmed, the event is reported to the Technical Log as a warning. We recommend monitoring trimmed values, as they may lead to skewed reporting. If multiple values share the same first 100 characters and differ only after those characters, segmenting by such attributes will merge metrics from these two distinct values into a single segment.

Enumerations

Enumerations are special types of attributes that can contain only values allowed by Salted CX. Unsupported values cause the data to fail to load using our Ingest API.

Entities

Entities are very simple Data Sets. Unlike Data Sets, they have only one attribute with two labels and no facts. Every entity has the same set of one attribute and two labels for that attribute.

PropertyTypeDescription
<Entity Name>PIDPermanent identifier generated by Salted CX and uniquely identified the item. The PID cannot be changed after the entity is created.
<Entity Name> IDLabel for <Entity Name>ID that the entity has in a third-party system. Salted CX does not enforce any format for the ID. The ID has to fit into 100 characters as attributes have to.
<Entity Name> NameLabel for <Entity Name>Name that is the default representation of the entity in the user interface. The name should be easy for users to read and understand. The name is also limited to 100 characters.

Entities enable you to have a unique representation of important items in the contact center, with a human-friendly visualization. Entities also enable you to easily rename the items without breaking relationships between important data points.

Entity properties available when building a visualization

PID

Each item in a dataset and every entity has a unique Permanent Identifier (PID). PID is a special type of attribute. PID is always a UUID that is either generated randomly or deterministically based on identifiers in the connected platform. Once a PID is generated for an item, it cannot be changed in the future.

Labels

Labels are alternative visualizations for attributes. While you might use a hard-to-read value that you are certain is unique as an attribute value, the unique value may be very inconvenient for end users to read.

There might be two items with the same label but different underlying attribute values. If such a label is used in insights, you will see two different segments with the same name and different metric values.

icon
Similarly to attributes, the label values are limited to 100 characters. If a label value exceeds 100 characters, it is trimmed. Whenever a value is trimmed, the event is reported to the Technical Log as a warning. Since labels are not directly used for segmentation and filtering, the trimmed labels have a lesser impact on data correctness. However, if there are two labels that have the same first 100 characters, the insights may be misleading - for example, you can see twice the same label value or accidentally filter for a different value.

Facts

A Fact is a numeric value in the Logical Model. Facts can be used for arithmetic operations, aggregated, and ultimately form the foundation for creating metrics.

Metrics cannot be used for filtering in insights and dashboards. However, you can use fact values in metric filtering conditions.

icon
When you load custom data and provide a non-numeric value where a fact is expected, the value is ignored and the event is reported in the Technical Log as a warning. The number in quotes is also not considered a fact.

Date, Time, and Duration

All dates and times in the logical model have one-minute granularity. There are multiple dates and times in the Logical Model.

All durations in the logical model are in seconds.

Technical items in data sets

Some data sets have technical values. Technical values have an attribute Type set to value Technical. You can use this attribute to filter the technical items in the data sets.

Technical items are stored by default in the Agent, Customer, and Engagement data sets.

Data not in logical model

The logical model does not contain the following data:

  • Conversation content, such as transcripts or voice recordings. It may, however, contain metadata extracted from the content, such as discussed topics, sentiment, and other features extracted from the content. The content is stored separately and displayed only when users drill down to the customer journey and have permission to view the conversation content.
  • Customer's personally identifiable data. Customer's personally identifiable data is removed and replaced by identifiers from the customer profile. We do not expose personally identifiable information in analytics or in the customer journey. To display personal identifiable information, the user must have a dedicated permission and click on a specific masked value to view it.
icon
Technically, you can provide pieces of conversation content and personally identifiable data in attributes and labels when loading custom data to Salted CX. However, we strongly discourage you from doing that as it bypasses compliance enforcement in Salted CX.

Search and Discover

Semantic Search finds turns in conversations that happened in up the last 30 days that have similar meanings. Semantic Search uses AI to find turns that have similar meanings even when they do have not a single word in common.

To use Semantic Search click on the search field in the top right corner of the application. Type the content of a message that you would like to find. Then click Search. Salted CX lists turns where a customer or an agent mentions something similar to what you search for. You need at least two words to

Each turn shows the following information:

  • Who is the author of the turn
  • When the turn happened
  • The color shows whether the turn is a customer, human agent, or a bot turn

You can choose whether you want to search in agent or customer turns or in both.

Click any turn in the search results to open the Customer Journey in which the turn happened.

Supported Languages

The list of currently supported languages in semantic search in alphabetical order:

Albanian, Arabic, Armenian, Bulgarian, Burmese, Catalan, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, Georgian, German, Greek, Gujarati, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Kurdish, Latvian, Lithuanian, Macedonian, Malay, Marathi, Mongolian, Norwegian Bokmål, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Urdu, Vietnamese

The returned results will differ depending on the language combination, how close the languages are and how much training data are available for the individual languages.

Metrics

Metrics are calculations that calculate a numerical value on top of all engagements and other items in the Logical Model.

Built-in Metrics

Salted CX ships with a rich set of built-in metrics that you can use to build your own insights and dashboards. You can also use the built-in metrics to create your own metrics on top of them or as an inspiration to create your own metrics from scratch. The built-in insights and dashboards use the built-in metrics.

icon
The set of built-in metrics available in every Salted CX account is the same. However whether the metrics provide results depends on platforms you connected Salted CX to and on additional data you load to Salted CX. Different platform provide different set of data.

Check Metrics Reference for list of metrics available out of the box.

Custom Metrics

Salted CX contains a metric editor that enables you build your own metrics based on any data point available in Logical Model. You can build your own metrics on top of the built-in metrics or create your metrics from scratch. You can use custom metrics to build new insights and dashboards. They offer the same flexibility as the built in metrics.

Quality Assurance

Salted CX focuses on an agile review process that prioritizes the maximum amount of feedback for agents with as short a feedback cycle as possible. Additionally, Salted CX can use the collected feedback from people to train AI which then enhances the quality assurance process.

Even if quality assurance is done automatically by AI human feedback is necessary to provide training data for the AI and ensure that the results provided by AI are aligned with the business expectations.

More Reviews that Matter

To get the most value from the time and effort you invest in reviews you have two high-level options:

  • Focus on more interesting conversations. Reviewing these conversations is more likely to lead to actionable findings. You do this by selecting some criteria detected from metadata and content.
  • Review more conversations. Spend less time on an individual conversation to maximize conversations reviewed per unit of time.
The example, how focus on conversations and speed helps to process more actionable conversations

The exact ratio between a number of actionable findings between the random sample reviews and reviews on focused and fast reviews depends on multiple factors:

  • The percentage of actionable conversations out of total volume.

The table below contains the comparison of random sampling and focused reviews:

Opportunity Discovery ApproachRandom Sample Legacy Quality Assurance
Primary GoalsDiscover opportunities how to improve key business metrics often with collaboration by other departments in the company.Provide agents with a fair assessment of their performance that can be used to decide for calculating compensation and even make career decisions. Provide performance reports to a 3rd party or higher management to monitor how the contact center is doing.
Integration with AIQuality Assurance also annotates individual turns for training AI models.Hard to use for training AI models as most of the reviewed content is not actionable and most feedback is engagement-wide which means that the AI model does not know what exactly caused the feedback. This gets worse for longer engagements.
Main AdvantagesFocuses on resolving issues and uncovering opportunities that have the highest impact on the company's performance. A high ratio of reviewed conversations contains interesting moments you can act on.Provides a benchmark value for a performance based on human feedback.
Main DisadvantagesDoes not provide a fair assessment of agents’ performance. Depending on whether you focus on problems or highlights it can create a very skewed perception of performance. Requires constant changes to reflect the changing business goals and external factors.Low number of reviewed conversations. A low percentage of actionable findings out of reviewed conversations (as in a well-managed contact center most conversations are OK). Sometimes it is hard to keep the customer perspective aligned with the watched quality score (for example quality scores are high while customer satisfaction is low).
Percentage of manually reviewed conversationsTypically around 5%. Depends on specific use case.Typically around 1%. Depends on the duration/length of the conversations and complexity of the form used for reviews.
Choosing Conversations for ReviewConversations that are outliers in key metrics including but are not limited to customer satisfaction, engagement time, wrap-up time, etc. Conversations that were automatically reviewed by Salted CX AI and were tagged with a tag that indicates some behavior worth somebody’s attention. Conversations that contain specific content based on ad hoc Semantic Search.Random sample.
Manual review processRead through conversations in Customer Journey and use feedback forms to annotate turns and engagements whenever you find something worth attention.Answer questions in a form by browsing a skimming conversations over and over.
Steps after the manual reviewAll the results are visible in dashboards within the next 15 minutes automatically. People who requested the review can take action on those review results.Sharing quality score with management to keep track of the key quality identifiers.

Reviewing Conversations

Users review conversations based on findings.

How to Manually Review Turns and Engagements

After you drilled down to a customer journey.

  • Navigate to the part of the customer journey that is relevant for your review. Drill-down from a dashboard often leads to a specific conversation or engagement. Discovery using Semantic Search leads to a specific turn. You can use the summary on the left side to focus on conversations happening in a time frame you are interested in. You do not often need to review a complete customer journey.
  • Read through the part of the customer journey relevant for your review. Whenever you find anything worth your attention. Use the Feedback panel on the right to tag it with a given behavior. Choose the best form for your review. You can use different forms for customer, agent, and bot turns and Salted CX remembers the choice for individual turns separately.
  • You can use the Reviewed tag to mark the engagement as completely reviewed at the end.

Useful tags for general use:

Bookmark — marks the current turn or conversation for later use. So it is easy to discover.

Reviewed — marks entire engagement as reviewed in reports, counts toward coverage of agent engagements that were reviewed. Use this tag to show that you went through the entire engagement to make sure nothing important slips.

See the full list of built-in tags and questions.

Tags and Questions for Your Business

Salted CX provides a rich set of built-in tags and questions that try to cover common use cases. These provide a great starting point.

icon
Contact Salted CX to create tags and questions for you. This step cannot currently be done directly in the application.

Auto Reviews

Auto reviews are similar to reviews people can provide in our Customer Journey using the feedback pane. However, auto reviews are provided by AI. They can also be associated with a specific turn

Auto reviews analyze 100% of conversations and attach reviews to them. These reviews are easy to distinguish from reviews provided by people. You can report on them and you can see them in our Customer Journey.

How are auto-reviews useful:

  • Watch the number of conversations that contain certain behaviors over time. Making sure the number grows (for positive tags) or declines (for negative tags).
  • Identify agents, teams, or other clusters of conversations that contain unwanted behavior to have a look at the root cause.
  • List conversations that have tags or a combination of tags for review by a person. For example, you might use auto reviews to find places where customers are unhappy and you want to walk through those conversations to learn what are the reasons and categorize those.
icon
Contact Salted CX to start auto-reviewing using a specific tag. This step cannot currently be done directly in the application.
icon
The accuracy of auto reviews depends on the use case and the amount and clarity of the manual reviews. Every AI model requires training input that is as accurate as possible.
Ingest API

We provide Ingest API that enables you to enhance existing data in Salted CX with attributes and facts that are important for your business. You can also use the Ingest API to integrate Salted CX with a platform that is not supported out of the box by Salted CX.

Before You Start

Before you start it is good to have understanding of these topics:

  • Logical Model — enables you to understand the data structure expected by Salted CX. The Ingest API expects the data that matches the Logical Model and individual files uploaded to Salted CX represent items in individual data sets.
  • Ingest Data Format — enables to understand file naming convention, file format and supported values in the uploaded file.

Get Access to Ingest API

Access to Ingest API requires these information that you need to ask us via help@salted.cx:

  • Account ID — UUID that is unique identifier of the customer account and the associated domain
  • Secret API Key — long random characters that authorize your code to upload the data
  • Source ID — UUID that identifies the data source. We recommend to ask for separate Source IDs if you have multiple implementations that provide data via Ingest API from different sources.

The above information is all you need to upload data to Salted CX. Keep these information is a secure storage such as AWS Secrets Manager or its equivalent in a different infrastructure. Although Only Secret API Key is sensitive we recommend that you do not use any of these in you code and retrieve it via environmental variables or directly from a secrets management service.

Upload Process

The upload process has these steps:

1 — Prepare the data into a batch of compressed JSONL files to a single ZIP file. Check ingest data format for details on the format of the JSONL files.

2 — Request upload link from the Ingest API. This requires passing the authorization token in the request headers.

curl --location 'https://api.eu.salted.cx/api/v1/ingest/upload-url' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Secret API Key>' \
-d '{
          "ingestionSourceId":<Source ID>"
    }'

3 — Upload the prepared ZIP file from step 1 to the upload link retrieved in step 2 using HTTP PUT method.

curl --location --request PUT '<Upload link from step 2>' \
--data-binary '@/<Path to ZIP file from step 1>'

Access to Recordings

If you want users to playback recordings from the customer journey.

Salted CX needs permissions to read the files from S3.

Follow AWS documentation to provide S3 folder permissions with Salted CX account.

Best Practices

Use a dedicated account for testing purposes if your integration is not yet thoroughly tested. Currently the API supports only additive changes of data or modification of existing data. In case you need to delete data please reach to use help@salted.cx.

Limits

The API has the following limits:

  • Maximum size of a single batch is 1GB
  • Maximum number batches per 15 minute is 1,000
  • Total data size uploaded in 15 minutes is 10GB

Pricing

Adding data using Ingest API influences costs as it creates engagements and other data set items that may impact the overall price for Salted CX.

Integrations

Salted CX provides support for the following contact center platforms.

PlatformDetails
AircallSupport for voice conversations.
Amazon ConnectSupport for conversation metadata, agent statuses, and chat content. With Amazon Lens enables Salted CX also downloads voice transcripts and sentiment for both chat and voice transcripts.
FreshdeskSupport for importing tickets as agent engagements in Salted CX.
SalesforceSupport for Salesforce Omni-Channel agent work and Salesforce tasks for metadata. Salted CX also imports transcripts for live chats and emails.
ServiceNowSupport for importing incidents from ServiceNow including conversation content in them.
Twilio FlexSupport for Twilio Flex (TaskRouter) tasks and agent statuses, contents of Twilio Messaging conversations, and Twilio Studio for IVR engagements.
ZendeskSupport for Zendesk tickets and chat.
ZingtreeSupport for self-service sessions that customers went through. Individual steps customers take through the menu are shown in the customer journey. You can also report on what menu paths the customers often use and whether they are resolving their requests.

Adding Supported Platform

Salted CX adds support for contact center platforms based on demand. If your platform is missing in the above list please reach us at help@salted.cx to check when we can support your platform.

Live Conversations

Live Conversations enable agents to talk with customers when conversations cannot be handled automatically. Live Conversations are designed to provide agent with an ergonomic efficient AI-empowered interface to provide high quality of care to customers that is tightly integrated with your company’s AI and enables external agents to help you without having to be users in Salted CX. Learn more about Handling Live Conversation.

Escalation Path

Live Conversations with Your Logic focus resolving customer requests in a collaborative matter where Salted CX facilitates workflow that goes from highly automated low cost conversations to involvement of people (most expensive). In order of increasing costs on your side to handle the conversations:

  • Customer self-service using menus. Enables fast, inexpensive, 24/7, predictable and easy to analyze way to resolve the most common customer requests that do not require customer elaborating on their issue. You can use Your Logic to offer dynamic questions to customers at every step. Learn more about menus in Build Menus using Your Logic.
  • Bot conversations. Enables to handle common requests by the customer using a different modality. The bot should typically support everything the self-service supports does and more. Bot also enables users who prefer describing their problem rather that choosing from menus to resolve their issues in their prefer modality. This is still an automated and relatively inexpensive as it does not require a human involvement unless escalated. Learn more about Your Logic Implementation Tips.
  • External agent (partner) involvement. You can involve people who are not users in Salted CX to handle selected conversations. Your partners can help you to resolve customer request without need to consume your agents’ time. Partners can be also better equipped to handle some request as they may have better understanding of their products and service than your agents.
  • Agent involvement. The most expensive option for most companies. Consumes your agents’ time. Live Conversations focus on helping agents with their efficiency and give them quality tools that enable responding to customers faster and in higher quality. Learn more about Handling Live Conversation.

Features

Key features of Live Conversations:

  • Integration with Your Logic. You own your business logic and AI and remain in control all the time including after the handover to the agent. So you can watch what is happening and assist the agent. Salted CX does not force you to use a specific technological stack or proprietary language or workflow editor for implementing your business processes.
  • Invite external agents. You can invite people that are not within your company and are not users in Salted CX to help with selected conversations. When invited they will receive a link with time-restricted access to one selected conversation. Your Logic can send invites without having to include in-house agents and thus saving their time.
  • Collaborative customer care. All participants including your agents, external agents and AI work together on individual customer requests. AI can ask agents for help, invite specific people into conversations and take back conversations from live agents if it knows how to continue. Agents can delegate their work, invite specific colleagues in, or ask anybody for help.
  • Complete customer journey. Salted CX unifies all conversations into one continuous customer journey even when the conversation does not happen in Salted CX. Salted CX collects relationships between contact information and uses customer profile to build identity graph that links web chat sessions to emails and phone numbers. Agent can then see all prior conversations in a single scrollable pane.
  • Abstraction from communication channel details. Whether agents or Your Logic handles conversations they handle it in a unified way no matter the channel. Of course you should take into consideration the channel specifics such as greetings and other conventions in emails.
  • Multi-modal interaction. Using Your Logic you can combine menus and free text communication with seamless transition between the modalities. Learn about using menus in chat.
  • Built-in integration with analytics. Every action taken by the participants goes into reporting. The concepts such conversations, engagements, agents and other directly match to analytics in our Logical Model. Conversations made in Salted CX Live Conversations are visible next to conversations from other contact center platforms.

Channels

Live Conversations enable agents to handle conversations from all supported channels in the consistent manner. Currently supported channels in Live Conversations:

  • WhatsApp. Salted CX provides features for WhatsApp similar to Universal Chat.

Navigation

The navigation enables agent to jump between conversations that they are engaged in and join new conversations. When agent joins a conversation they can communicate with the customer. See Handling Live Conversation for more details.

icon
Users cannot view the conversation without joining it. This is intentional behavior to avoid agents cherry picking the conversations. When joining a conversation the measuring of engagement time starts and the engagement becomes visible in analytics.

My Conversations

My conversations section contains all conversations in which the current user is engaged in. These conversations are what the agent should be currently focused on and try to resolve them as well and as soon as possible.

Help Needed

Help needed section contains conversations that need help for any reason. Your Logic may flag conversations that need help in case it does not have high confidence reply for a customer, or the customer specifically asks to speak with a person. Human can also ask for help to involve additional people in case they do not know how to proceed.

A few examples how conversations can be flagged for needing help:

  • Your Logic does not know what to answer to the customer.
  • Your Logic has an issue, for example it is not reachable, it does not respond in time, it returns malformed replies.
  • The customer explicitly asks for speaking with a live agent and your business process honors their wish and asks for help of the live agents.

Recently Left

Recently left contains conversation in which the current user recently participated but no longer does. Agents can use Recently left section to return to conversations in case they left them accidentally or they have second thoughts of leaving the customer too early.

All Live Conversations

Users who have permission liveConversations.viewAll can also see all conversations that are currently in progress including conversations that involve only Your Logic or customer sho are just waiting for their first response. Users can join these conversations as well.

Setup Live Conversations

To use Live Conversations to its fullest follow the Live Conversation Setup article to enable handling web chat and WhatsApp conversations.

Your Logic

Your Logic enables you to easily integrate Salted CX with your infrastructure. Salted CX has only one integration point that you can use to connect to your internal systems. Your Logic can intercept any message sent by any participant and tell us what to do.

Typical use cases for Your Logic:

  • Respond to customers using a custom generative AI
  • Perform actions when customers reach certain points in the self-service
  • Ask agents to confirm impactful operations before they are performed
  • Query internal systems to provide more information to agents
icon
You can use only one endpoint for Your Logic. In case you have multiple services that need to receive events from Your Logic you have to implement this distribution mechanism into Your Logic endpoint.
icon
Only communication that happens via Salted CX Live Conversations integrate with Your Logic. You cannot connect Your Logic to conversations that we ingest from 3rd party systems into analytics.

High Level Architecture

Your Logic plugs into the Conversation Management that notifies you about important events. Your Logic tells what we should do next.

Separation of Concerns

What Salted CX does for you:

  • Connection to multiple channels such as web chat, WhatsApp, etc.
  • Unification of multiple channels to a unified format
  • Queue events in individual conversations so Your Logic can tackle them one by one
  • Preprocessing of messages — language detection, translation, etc.
  • Keeping conversation context data
  • Fallback in case Your Logic is unresponsive
  • Escalation to agents in Live Conversations

What you SHOULD do:

  • Integrate with your systems in Your Logic to obtain data and perform actions
  • Scale Your Logic to handle the expected volume of conversations and respond within set timeouts
icon
Your Logic has to be able to handle multiple parallel conversations from the same customer. While we ensure that we will sequence all requests for individual conversations we do no sequence requests for customers. Customers can be involved in multiple conversations by simply emailing you and chatting at the same time. This might impact you when you are modifying customer-related data in your system. One conversation can update customer information that may influence other conversations.

Prerequisites

Contact Salted CX to get Your Logic ready for your account:

  • Provide Salted CX with your Salted CX account domain and endpoint that should receive requests from Your Logic
  • Get Shared Secret from Salted CX that enables you to verify requests sent to your endpoint are authentic and authenticate your responses

Your Logic Tech Stack

Salted CX does not force you into adopting any specific tools, technology, infrastructure nor programming language for Your Logic implementation. We define and enforce the communication protocol between Salted CX and Your Logic. You can choose your preferred technological stack to implement Your Logic to take advantage of people and skills you already have in your company.

You have many solutions to pick from including but not limited to:

  • NodeJS server — provides ultimate flexibility as you can code in any behavior that you want. You can use AWS Lambda or Kubernetes to enable Your Logic to scale.
  • n8n — universal workflow editor with large community and large set of built-in integrations.

Authorization

Salted CX uses shared secret authorization to ensure both sides can verify that the HTTP communication is sent by their counterparty.

Authorization of Your Logic Requests

You can check that requests are sent from Salted CX by checking the Authorization header in every HTTP request for the shared secret. You SHOULD not process requests that have the header missing or have an unexpected value.

Authorization: Bearer <shared secret>

Authorization of Your Logic Responses

Your Logic implementation sends the request to https://api.eu.salted.cx/api/v1/live/your-logic endpoint that contains account ID and conversation PID.

https://api.eu.salted.cx/api/v1/live/your-logic/accounts/[ACCOUNT]/conversations/[CONVERSATION]

Each call to this endpoint MUST contain shared secret in the Authorization header. Each response that does not contain the header or contains unexpected value is ignored and no action is taken.

Authorization: Bearer <shared secret>

Requests from Salted

Whenever an action happens in a conversation Salted CX notifies you on your web hook. Salted CX sequences requests for individual conversations so you have a time to respond. Each event such as sent message goes through multiple stages when processed by Salted CX before it is shown to the other participants. Your Logic receives requests from one conversation in sequential order. Your Logic waits for Your Logic to respond to a request before sending another.

icon
Actions returned by Your Logic do not cause subsequent calls to Your Logic. They are directly shown to all participants. Post-processing may involve translation and other operation necessary.

Your Logic SHOULD send at most one response to one request. First response is accepted, all subsequent responses to the same request are ignored.

Activity Your Logic does not receive notifications about:

  • Typing (and similar activity) indicators

Action Stages

Each action such as sending a message goes through multiple stages from the moment it is performed by a participant until it is visible by other participants. The following table describes the stages in the chronological order.

Action StageDescription
Action StoredSalted CX received the action from a participant. The action is visible only to that original participant. Nobody else can see effect of the action (for example a message).
PreprocessingSalted CX processes the captured action and tries to provide Your Logic with the best possible input. The exact processing depends on action type. For messaging the pre-processing includes language detection and language translation.
Ready for Your LogicSalted CX is ready to send the information about the action to Your Logic. In case there is no request related to this conversation in Your Logic Salted CX sends the request with this action to Your Logic. If Your Logic is still processing a previous request related to the conversation the action is send after Your Logic responds together with other actions. See Asynchronous Behavior in Your Logic for more details.
Post-processingSalted CX executes actions that Your Logic returned in its response. Part of the execution of the actions may be additional processing such as translation of messages to the customer language. At the end of this stage Salted CX can send to Your Logic a next request related to the conversation.
Ready for ParticipantsSalted CX shows the effect of the action (for example a message) to other participants.

Error Handling

We ensure fallback in case Your Logic is not available due to network error, the service is down or the service is too slow to respond. The fallback ensures the stability of the infrastructure and maintain certain level of service for your customers.

icon
Common fallback action for messaging conversations is to ask human agents for help. Depending on the volume of your conversations this may be overwhelming for them and people might not be able to provide the same response times and quality of service under such load.

Your Logic is Not Available

In case an event happens and Your Logic is not available we resort to performing a default action that would be done as if Your Logic was not setup at all. If the conversation has no engaged human agent then we mark the conversation with Needs Help flag which makes it appear in agents Live screen in Salted CX. The messages between participants continue to function normally.

Your Logic Returns an Error

If Your Logic returns an error we behave as if Your Logic was not available.

Possible errors handled by Salted CX:

  • When calling your web hook Your Logic returns HTTPS response code outside of 2xx range
  • Your Logic responds in unsupported format, corrupted file, etc.

Your Logic is Too Slow

If Your Logic does not respond in timeout in settings we behave also as if Your Logic was not available. Each request from Salted CX contains an expiration time in UTC that lets you know how much time Your Logic has to respond.

Salted CX may have additional grace period to accommodate for network delay and other potential issues. So it is possible that even responses after the timeout get accepted but there is no extra guarantee beyond the timeout. You can adjust the timeout in settings. We recommend to set the timeout as low as possible but with enough buffer for spikes during normal operations.

One Your Logic per Account

You can have only one Your Logic web hook endpoint per account. We do not support calling multiple web hooks. In case you need to send requests from Salted CX to multiple destinations you have to implement this behavior in Your Logic.

Additional Resources

Your Logic Requests — what you will receive from Salted CX

Your Logic Responses — what you should send to Salted CX as response to the requests

Your Logic Data — what data are exchanged during Your Logic

Asynchronous Behavior in Your Logic — how to work with asynchronous communication

Your Logic Implementation Tips — some tips how to make Your Logic behave in a customer friendly way