Hi, how can we help you?
Find help articles, troubleshooting guides, and tutorials
Search
Popular searches:
Find help articles, troubleshooting guides, and tutorials
Popular searches:
We're sorry to hear that. In case we've missed something, let us know!
Let us knowThis guide outlines the various methods administrators and users can use to gain access to the Tekst platform.
Begin by opening your web browser and navigating to your organization's Tekst login page (e.g., https://<yourcompany>.tekst.com).
On the login page, click on the "Email" field to activate the input area and enter your email address.
Enter your registered email address in the designated field, ensuring it is typed correctly. Then, click on the "Password" field and enter or paste your password. Double-check both entries for accuracy to ensure a successful login.
Once your email address and password are entered, click the "Continue" button. This step confirms your identity and initiates the login process.
Congratulations! You have successfully logged into Tekst.
You now have access to the platform and can start exploring its features.
For a more personalized experience, proceed to access your organization. Click on your organization's name to seamlessly enter your Tekst workspace and begin collaborating with your team.
Clicking on your organization's name grants you access to your Tekst workspace - a centralized hub for collaborative content creation. Within this space, you can easily work with team members, exchange ideas, and contribute to producing meaningful, high-impact content.
In conclusion, Tekst streamlines the login process, making it easy for users to access their workspaces quickly and begin collaborating efficiently.
This guide offers an overview of the elements you can customize on the Tekst platform - and how to do it.
Open your web browser and navigate to your organization's Tekst login page (e.g., https://<yourcompany>.tekst.com).
Once you logged in find and click on the option that says "Settings".
Inside the settings menu, select the option called "Organization".
Locate the "Name" field and click on it. Then, enter your desired organization name.
Click on the "Save" button to save the changes you made to your organization's name.
Click on the "Choose File" button and select the file you’d like to use as your organization’s logo.
Click the "Upload New File" button and select your new logo from your computer.
Then, click "Save" to apply the changes to your organization's logo.
Congratulations! You’ve successfully customized your organization’s name and logo. You're now ready to explore the features and tools Tekst offers to support seamless collaboration and effective communication within your team.
This guide outlines the steps to take if you find yourself locked out or simply want to enhance your account security.
Start by navigating to the Tekst login page.
You can do this by navigating to your organization's Tekst login page (e.g., https://<yourcompany>.tekst.com) in your web browser.
Find the "E-mail" field on the login page and click on it to begin the login process.
Type in the email address associated with your Tekst account. Make sure it's the one linked to the account for which you need to reset the password.
Below the email field, you'll notice a handy "Forgot password?" link.
Click on it to initiate the password reset process.
After clicking "Forgot password?" a new window will prompt you to fill in the email address where you wish to receive the password reset instructions. Enter the desired email address and click the "Continue" button to confirm your request.
Next, go to your email inbox and look for a password reset message from Tekst. Open the email and click the "CONFIRM" button to proceed.
Return to the Tekst website and locate the "New password" field. Click on it and create a new, secure password for your account.
Before proceeding, make sure it meets all specified security requirements:
At least 8 characters
At least 3 of the following:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special characters
Re-enter your new password to confirm it matches the one you just entered.
Finally, click the "Reset password" button. Congratulations! Your password has been successfully reset.
You can now log in to your Tekst account using your new credentials.
Remember to keep your password secure and unique to ensure the safety of your account. If you encounter any issues during this process, feel free to reach out to our support team for assistance.
This guide will explain the different user roles and their access on the Tekst App.
Tekst offers role-based access control to ensure users have the appropriate level of access and privileges based on their needs. The standard user role provides the essential permissions needed to navigate the platform and collaborate effectively within your organization.
Demo
Access: Demo users have restricted permissions and cannot make any changes. They are specifically designated for use within demo organizations.
Usage: Ideal for showcasing Tekst's capabilities without the ability to modify settings.
Reader
Access: Readers only have read access, and no changes can be made to settings.
Usage: This type of user is ideal for someone who just wants to see some information but does not have the ability to change anything in any way.
Contributor
Access: Contributors have read and write access. They can change the labels, rename the organization, invite other users, and add integrations. They cannot change others' roles, delete items, or access audit logs.
Usage: Contributors are individuals that are actively involved in creating an organization’s content but do not need to manage it administratively.
Admin
Access: Admins can access and modify all settings. There can be more than one Admin per organization.
Usage: Admins are suitable for individuals who need extensive access and control within the organization.
Outlook Only
Access: Outlook Only users can only log in on the Tekst Outlook App. They can view AI insights on emails - like tags, entities, and automated actions - without accessing the main Tekst web dashboard.
Usage: This role is ideal for team members who need email intelligence directly in Outlook but don't require full platform access.
Prerequisites:
| Role | Web Dashboard | Outlook Add-in | Editing Permissions |
|---|---|---|---|
| Outlook only | No access | Read-only insights | None |
| Reader | View analytics | Full access | None |
| Contributor | View and edit | Full access | Workflows and models |
| Admin | Full access | Full access | Everything |
If your organization needs more granular roles or specific permissions tailored to your use case, please consider contacting support@tekst.com. Our team can provide you with more details and help you establish roles that would meet your specific organizational requirements.
Now you know how to effectively scale user roles on Tekst. Just let us know if you have any questions or need further assistance, and we will be happy to help you out via support@tekst.com.
This guide goes over the steps to invite new users to your Tekst organization.
Note that you need to be an admin or contributor to invite new users.
On the Tekst platform, locate and click on the "Settings" option. This is typically found in the bottom navigation menu, providing access to various configuration and account management features.
Within the "Settings" section, find and click on the "Users" tab. This area is specifically designed for managing the users associated with your Tekst workspace.
Locate and click on the "Add users" option. This initiates the process of sending an invitation to the individual you want to join your Tekst workspace.
You can invite up to 25 users at once by entering multiple email addresses separated by commas.
In the "Email" field, type the email address of the person you want to invite.
Assign one of the following roles for the invited users:
Admin has full access to the Tekst workspace, including admin settings, user management, and role changes.
Contributor has edit access to most modules, including the ability to invite new users, but cannot access admin settings.
Reader has read access to most modules, but cannot edit or invite users.
Outlook Only can only log in on the Tekst Outlook App, not on the web platform. This role is only available when your organization has an Outlook integration configured.
Now, you have successfully invited a new user to join your Tekst workspace. The invited person will receive an email with instructions on how to access and join the platform.
If you need to resend or delete the invitation for any reason, click on the person you wish to delete or resend the invitation to. Click on the trash can in the bottom left corner to retract the invitation or on the "Resend invite" button to resend the invitation.
If you encounter any issues or have further questions, contact Tekst support for assistance.
The steps below will guide you through the process of changing a member’s role within your Tekst account. Whether you're promoting a user to a contributor or adjusting their role for specific responsibilities, Tekst offers a simple and intuitive way to manage user roles effectively.
On the Tekst platform, locate and click on the "Settings" option. This is typically found in the bottom navigation menu, providing access to various configuration and account management features.
Within the "Settings" section, find and click on the "Users" tab. This area is specifically designed for managing the users associated with your Tekst workspace.
In the "Users" tab, you'll see a list of all the users linked to your Tekst account. Click the user whose role you want to change. In the column 'ROLE', you can switch the user role.
Be sure to communicate any role changes clearly with your team members to ensure aligned expectations. Once you’ve selected a new role, a confirmation message will appear, confirming that the update has been successfully applied for each member.
Congratulations! You’ve successfully updated a team member’s role on Tekst.
If you have any questions or need further assistance, feel free to consult the detailed Scribe documentation or contact Tekst Support for personalized help.
Enjoy seamless collaboration within your Tekst workspace!
The filter block lets you control automation flow based on conditions. When a condition is met, the automation continues to the next step. When it's not met, the flow stops.
Use filters to route emails, apply labels, or trigger actions based on sender, content, model predictions, or other criteria.
In the automation builder:
Hover over an existing block (like "Tekst Processing")
Click the + icon that appears
Select Conditions > Filter
After adding the filter, set your condition:
Select a variable from the dropdown (e.g., From > Email, Subject, Priority)
Choose an operator (varies by data type - see below)
Enter the value to check against
The configured filter appears with yes/no paths:
Operators change based on the variable type you select:
Text fields (email, subject, body, domain):
EQUAL / NOT_EQUALS
CONTAINS / NOT_CONTAINS
STARTS_WITH / ENDS_WITH
EXISTS / DOES_NOT_EXIST
Numbers (custom extracted fields):
EQUAL / NOT_EQUALS
GREATER_THAN / GREATER_THAN_OR_EQUALS
LESS_THAN / LESS_THAN_OR_EQUALS
EXISTS / DOES_NOT_EXIST
Arrays (predictions like category, tags):
CONTAINS_ANY / NOT_CONTAINS_ANY
IS_EMPTY / IS_NOT_EMPTY
Dates (message created, updated):
BEFORE / AFTER
EXISTS / DOES_NOT_EXIST
Most text operators are case-insensitive by default, so "urgent" matches "URGENT" or "Urgent".
When an automation runs, the filter checks your condition:
Condition met (yes): Continue to the next block on the yes path
Condition not met (no): Stop the flow
Add another block to the yes path by hovering over the filter and clicking the + icon below the yes arrow.
Create a filter to check if the sender email equals support@tekst.com. On the yes path, add an "Add Labels" action to tag the email as "Important" in Outlook.
Filter by sender domain:
From > Domain EQUAL "tekst.com"
Check for urgent keywords:
Subject CONTAINS "urgent"
Route high-priority emails:
Priority EQUAL "HIGH"
Filter by category prediction:
Classification > Category CONTAINS_ANY "Order", "Invoice"
Check if attachment exists:
Attachments IS_NOT_EMPTY
Filter by date range:
Message Created At AFTER "2024-01-01"
Check custom extracted field:
Extraction > Customer ID EXISTS
Variables like Priority, Category, Intent, and Sentiment come from Tekst's AI model predictions on your messages.
Click + add condition in the filter block to combine multiple checks:
AND logic: All conditions must be true (e.g., From domain = "tekst.com" AND Priority = "HIGH")
OR logic: At least one condition must be true (e.g., Subject contains "urgent" OR Priority = "HIGH")
You can also chain multiple filter blocks sequentially for more complex routing.
Route emails from specific domains to different teams
Apply tags based on Tekst model predictions (priority, category, sentiment)
Trigger actions only for emails containing certain keywords
Filter by sender to automate replies or forwarding
Check if custom fields exist before processing orders or invoices
Chain multiple filters to handle complex routing. Each filter adds another condition to check sequentially.
Combine filters with actions like "Forward Email," "Assign to Team," or "Send Reply" to build complete automation workflows. See Create your first automation flow for a step-by-step example.
This article gives an overview of automations and how they help our customers define both simple and complex business rules. An automation consist of flows that define a set of conditions and actions. Both are explained in more detail below.
Automation in business communication helps streamline tasks and workflows, allowing teams to focus on complex, high-value interactions rather than repetitive administrative tasks. In Tekst, “automation” refers to a system that automatically manages and routes communication flows - such as emails and tickets - based on rules that you define, ensuring timely responses, organized inboxes, and faster resolutions.
An Automation is a set of predefined actions that run without manual intervention. At its core, an automation operates based on triggers (events that activate the automation), conditions (rules that define what the automation should do) and actions (actions that define what actually needs to happen based on the condition). When triggers and conditions are met, Tekst will automatically carry out actions that you set up to manage and organize incoming messages.
For example, an automation could be set to sort and tag incoming customer support emails based on predictions and/or keywords. If the prediction “Billing” is made by the model, the automation could tag the email as “Billing” and assign it to the appropriate team.
A trigger is an event that starts an automation.
Triggers currently only include receiving a new email. In the future Tekst might add new triggers to start an automation.
Conditions specify the rules for the automation to work. They define the criteria that must be met for the automation to proceed. Common conditions might include predictions made by the model or include specific keywords in an email or subject or domain. An overview of all the possible conditions and their explanation can be found in the article on conditions.
Actions are the tasks the automation will complete when the conditions are met.
For example, an action might be to forward an email to a certain team, assign a priority level, or send an automatic reply.
The actions that are presented to the person configuring the flow depend on the integration type that is used. Actions in a flow related to an outlook integration, will be different from Salesforce integrations, because the use cases are completely different.
We discuss the different type of actions in more detail in the designated article.
Apps are blocks that allow customers to define custom actions designed using TypeScript.
They enable customers to extend and personalize the automation capabilities within their workflows, giving them flexibility to tailor specific actions to fit unique business needs. By creating Apps, customers can go beyond the standard automation options, developing bespoke actions that handle more complex tasks, integrate with third-party systems or apply custom logic directly within the Tekst environment.
This article outlines all the steps required to setup your first flow.
The basic overview of flows is described in the "Discover Flows" article.
Go to yoursubdomain.tekst.com/automations and click "New Flow". The placement of this button depends on the view you use (grid or list view):
Select the required inboxes and hit "Apply". Flows can run on 1 or more inboxes but require at least one inbox to be configured. If you configure more then 1 inbox, they need to be the same type. You cannot mix Outlook and Zendesk in one flow for example.
You are now ready to build your flow. You can give the flow a name and a description and add more building blocks.
A possible building block is adding a label in Outlook.
This can be done by adding the condition for the email address. You can do this by hovering over the 'Tekst Processing' Block and clicking on the '+' icon:
This allows you to add new blocks. Select "Conditions" and click "Filter". In the Filter you can now add the required variable, which in this case is the email address.
You can now select the operators. In this case we want to validate whether the sender is EQUAL to support@tekst.com so that's the operator we'll use.
The result will look like this:
The filter will result in a yes or no:
We now want to add the action "Add Labels". In this action block we can enter the label we want to add to the mail if the conditions above have been fulfilled.
In this example we'll write 'Important'.
Congratulations, you have now built your first flow!
The flow is now complete and looks like this:
This guide goes over the steps to set up the human approval automation step and explains its functionality.
In order to include a human approval step within your automation, you need to first:
It can be found under the conditions steps.
Within the human approval settings a variable needs to be selected. This is the variable that will be shown to the end-user for approval.
Multiple variables can be selected and they can be all sorts of different types (message data, model data, a custom variable).
A label and a description can be added, which will be shown to the end-user who needs to approve the content of the variable. Optionally, it is possible to specify the type of variable that is used, which can be, for example, a CSV file. If set to auto, it will try to automatically detect the variable type and show it in a suitable way to the end-user.
Finally, after completing setting up the human approval step, it is important to specify how the automation needs to continue when approved or rejected.
The automation approval step will be shown on two different places: within the messages module of Tekst itself and on the Outlook App side panel, which is the most useful option of the two, since you can view it within Outlook itself.
More info on how to install the Outlook app here.
If a CSV file is used as a variable, it is possible to edit it first before approving. The automation will then continue with the corrected CSV file.
This guide will explain the features of the Tekst Analytics overview, ensuring you can easily access and interpret the data to make informed decisions for your business. It predicts the topics, trends, and patterns emerging from your communications.
The overview contains 3 main parts:
The volume insights offers a detailed view of the quantity of traffic over specific periods.
This allows you to monitor the number of messages sent and received, the response time, resolution time and much more.
By analyzing volume trends, you can gain insights into communication patterns, peak activity times, and shifts in focus areas. Whether you're tracking overall traffic or diving into specific topics, Volume Analytics helps you understand the scale and dynamics of your business communications, enabling more strategic decision-making.
Learn more about how Tekst provides volume insights here
Topic Insights gives you a deep understanding of the specific themes and topics driving your communication.
The custom model analyzes the content of your messages to identify the most prevalent subjects, emerging trends, and shifts in conversation focus. This feature helps you stay on top of what matters most to your business, allowing you to track the relevance of topics over time and respond proactively to changes in the communication landscape. With Topic Insights, you can better align your messaging with current priorities and enhance the effectiveness of your strategies.
The Message Feed feature provides a real-time overview of your messages.
This allows you to see individual emails alongside their associated topic predictions, giving you immediate context for each communication. By viewing the Message Feed, you can quickly assess which subjects are being discussed, identify important trends, and gain a clear understanding of your email traffic's content flow. This feature streamlines the process of monitoring and managing your communications, making it easier to stay informed and responsive to the evolving needs of your business.
Topic discovery uses AI to analyze messages across your inboxes and automatically identify the most common topics your team handles. You can use discovered topics to bootstrap a classification model without manual setup.
Learn more about topic discovery.
This guide will discuss what metrics are offered in the volume insights section on the Tekst dashboard.
The volume insights offers a detailed view of the quantity of traffic over specific periods.
This allows you to monitor the number of messages sent and received, the response time, resolution time and much more.
The dashboard for volume insights contains 5 main components:
1. Group/inbox filter
2. Date range
3. Toggle between conversations, messages, first response time or resolution time
4. Participants
5. Messages
This filter allows you to filter the metrics on inboxes and/or groups.
Groups are a list of inboxes that can be created in the 'Inbox' section. By selecting a group, all the metrics will change to those that correspond with the data from that specific group.
The horizontal scroll bar contains all the groups that have been created and that are accessible by the user.
Besides a group, you can also select 1 or more individual inboxes by opening the dropdown menu under "All". Select the inboxes you want to capture and click "Apply".
The default view of the dashboard displays data from all inboxes over a two-week period.
You can change the default group by clicking on the desired group.
Setting the date range allows you to view insights for a specific time period. You can choose from the following options:
The custom option allows you to select two dates to define a specific time frame. In the example below, the selection will return insights from July 1, 2024, 00:00 to August 27, 2024, 23:59.
The dashboard displays the number of conversations that are received for the inboxes you have selected. A conversation can include multiple messages and is equivalent to a case in Zendesk or Salesforce, or a mail thread in Outlook.
By hovering over the chart, you can view the exact number of conversations, along with the value of the previous period.
The 'Message' tab gives the user an overview of the number of messages. A conversation can contain one or more messages. Customers can use this metric as an indicator as to how much time an agent has to spend (x amount of minutes per message) to solve a case.
The higher the messages/conversations ratio is, the more messages an agent has to manage to solve a single case.
The first response time indicates how long it takes on average for an agent to respond to a new conversation.
When selecting the First Response Time (FRT), you can set the FRT target to be 1h, 6h, 12h, 24h, or 72h. This target will give you visibility on how many messages have been responded to within the target. As with conversations and messages, you can filter data for this metric on group level and on personal inbox level through the group/inbox filter as described in the first chapter of this article.
When reviewing the first response time, the right metric will change to 'Responded Rate' and 'Response Time'.
'Responded rate' is the number of messages that have been responded to for the chosen time range.
Hovering over the bar will reveal the absolute numbers.
'Response Time' gives an overview in percentage and absolute numbers.
Changing the FRT target will correspond with the numbers in the graph.
Resolution time is the time it takes for an agent to resolve the case.
This information is not available for every type of integration. Currently, Tekst provides resolution times for these integrations:
You can change the filter on the resolution time similar to the first response time to reflect the SLA's that you would like to review (1h, 6h, 12h, 24h, or 72h).
Rather then a 'Responded Rate' as displayed when reviewing the first response time, we can now review the 'Resolved Rate'.
This gives the user an overview of the amount of tickets that have been resolved for the chosen time period.
The bar chart on the right, labeled "Participants," displays the number of people involved in each conversation. This provides insight into how many individuals are impacted by incoming messages.
A participant is counted when a unique user or email address appears in the "to," "from," "cc," or "bcc" fields of a message.
In the example below, 62% of conversations have 2 participants, meaning one person is sending a message to another person (or a shared account).
Generally, a higher number of participants may indicate that resolving the request requires involvement from multiple people, which could suggest inefficiencies and longer resolution times.
Below the 'Participants' chart we find the bar chart that gives an overview of the number of messages. Tekst works with conversations and messages. The messages bar chart gives an overview of the number of messages that are part of a conversation. If a conversation holds 2 conversations, this means that the agent was able to solve and close the ticket with just one response. This metric is a good way of knowing the number of times an agent has to work on a given ticket.
Audit logs give you a detailed record of every significant action taken within your organisation. They help you monitor user activity, investigate security incidents, and maintain compliance by showing who did what, when, and from where.
On the Tekst platform, click Settings in the bottom navigation menu. Then select the Audit Logs tab to open the audit log overview.
You will see a paginated table showing the most recent audit events, with the newest entries displayed first.
The audit log table displays four columns:
user_create or flow_publish).The table shows 10 entries per page. Use the pagination controls at the bottom of the table to navigate between pages. You can also change the number of entries per page by selecting 10, 25, 50, or 100 from the page size dropdown.
You can narrow down the audit log results using two filters located above the table. Filtered views are reflected in the URL, so you can bookmark or share a specific filtered view.
Click the date filter button (calendar icon) to open the date range picker. Select a start date and end date to view events within that period. You can optionally set a specific time for more precise filtering. Click Apply to update the results, or Clear to remove the date filter.
Click the action filter button to open a searchable dropdown of all available action types. Type to search for a specific action, then select it to filter the table. Only one action type can be selected at a time. To remove the filter, select All Actions.
Click any row in the table to open a detail panel on the right side of the screen. The detail panel contains two tabs:
This tab displays the complete audit log entry as raw JSON data, useful for technical investigation or when sharing details with your development team.
Tekst tracks a wide range of events across your organisation. For a complete list of every event type that appears in audit logs, see the "Audit log events reference" article.
If you have any questions or need help investigating a specific event, don't hesitate to contact our support team - we're here to help.
This article lists every event type that Tekst records in the audit logs. Use this as a reference to understand what each action means when reviewing your audit log history. To learn how to access and filter audit logs in the Settings UI, see the "View audit logs" article.
| Action | Description |
|---|---|
organisation_create |
A new organisation was created. |
organisation_update |
Organisation settings or name were updated. |
organisation_delete |
An organisation was deleted. |
| Action | Description |
|---|---|
user_create |
A new user was added to the organisation. |
user_update |
A user's profile, role, or group membership was updated. |
user_delete |
A user was removed from the organisation. |
| Action | Description |
|---|---|
integration_create |
A new integration was created. |
integration_update |
An integration's name, settings, or sync state was updated. |
integration_delete |
An integration was deleted. |
integration_access_control_update |
Access control settings were changed for an integration. |
| Action | Description |
|---|---|
flow_create |
A new flow was created. |
flow_update |
A flow's name, description, or configuration was updated. |
flow_delete |
A flow was deleted. |
flow_publish |
A flow was published as a stable version. |
flow_activate |
A flow was activated and started running. |
flow_deactivate |
A flow was deactivated and stopped running. |
flow_access_control_update |
Access control settings were changed for a flow. |
flow_approval_create |
An approval request was created within a flow. |
flow_approval_update |
An approval request was approved or rejected. |
| Action | Description |
|---|---|
model_create |
A new model was created. |
model_update |
A model's display name, description, or settings were updated. |
model_delete |
A model was deleted. |
model_publish |
A new model version was published. |
model_access_control_update |
Access control settings were changed for a model. |
| Action | Description |
|---|---|
tag_create |
A new tag was created. |
tag_update |
A tag was updated. |
tag_delete |
A tag was deleted. |
| Action | Description |
|---|---|
app_create |
A new app was created. |
app_update |
An app's settings were updated. |
app_delete |
An app was deleted. |
app_publish |
A new app version was published. |
app_access_control_update |
Access control settings were changed for an app. |
| Action | Description |
|---|---|
invite_create |
A new user invitation was sent. |
invite_update |
An invitation was re-enabled or resent. |
invite_delete |
An invitation was deleted. |
invite_accept |
An invitation was accepted by the invited user. |
| Action | Description |
|---|---|
account_update |
A user updated their own account settings or name. |
account_login |
A user logged in to the platform. |
account_logout |
A user logged out of the platform. |
account_password_reset |
A password reset was initiated. |
account_mfa_update |
Multi-factor authentication enrollment was requested. |
| Action | Description |
|---|---|
process_mining_delete |
Process mining data was cleared. |
| Action | Description |
|---|---|
api_key_create |
A new API key was generated. |
api_key_delete |
An API key was deleted. |
| Action | Description |
|---|---|
auth_method_create |
A new authentication method (such as SSO) was created. |
auth_method_update |
An authentication method's configuration was updated. |
auth_method_delete |
An authentication method was removed. |
The IP firewall restricts access to your Tekst project so that only users connecting from approved IP addresses can log in. When enabled, any request from an IP address that is not on the allow list is blocked. Use this feature to limit access to your office networks, VPNs, or other trusted locations.
Go to Settings > Security. In the IP Firewall card, click Edit to open the IP allow list settings dialog.
Before enabling the firewall, add every IP address or range that should be allowed to access your project. In the dialog you will see a form with two fields:
203.0.113.10), a CIDR range (for example 203.0.113.0/24), or an IP range (for example 203.0.113.1-203.0.113.50).Click Add to add the entry to the list. Repeat this step for every network that needs access.
Your current IP address is detected automatically and shown with a Current badge in the table. You cannot remove your own IP address, which prevents you from accidentally locking yourself out.
Toggle the Enable switch at the top of the dialog. A warning will appear reminding you that users connecting from IPs that are not on the list will be blocked.
Click Save to apply the new settings. Once saved, the IP firewall is active and only the listed IP addresses can access the project.
To make changes after initial setup, go to Settings > Security, click Edit on the IP Firewall card, and update the list:
Remember to click Save after making changes. If you close the dialog without saving, Tekst will warn you about unsaved changes.
Open the IP allow list settings dialog and toggle the Enable switch off. Your saved IP entries are preserved and will be applied again if you re-enable the firewall later.
The IP firewall accepts three formats:
| Format | Example | Description |
|---|---|---|
| Single IP | 203.0.113.10 |
Allows one specific address |
| CIDR range | 203.0.113.0/24 |
Allows all addresses in the subnet |
| IP range | 203.0.113.1-203.0.113.50 |
Allows all addresses between the two endpoints |
If a user is blocked by the IP firewall, they will see an error message stating that their IP address is not in the allowed list. To resolve this:
If you have locked yourself out and cannot access the platform, contact Tekst support for assistance.
If you need to allow traffic from Tekst to reach your own services (for example, webhook endpoints or custom step URLs), see Troubleshoot Firewall for a list of Tekst's fixed outbound IP addresses.
This guide will explain the different security settings and how to configure them in the Tekst App to ensure your sensitive information remains protected.
On the Tekst platform, locate and click on the "Settings" option. This is typically found in the bottom navigation menu, providing access to various configuration and account management features. Within the "Settings" section, find and click on the "Security" tab.
When enabled, messages become visible on the Analytics page. This allows users to view sample messages related to specific (sub)topics. When disabled, no message content will be shown.
The compliance banner serves as a warning to users that personally identifiable information (PII) may be visible. It encourages responsible handling of such data.
You can choose when the banner should appear: "Always", "First time only", or "Never" when viewing message data.
When enabled, a PII warning is shown when inputting possible sensitive information.
Enabling this option allows administrators to export analytics data. When active, an export field appears, providing access to a downloadable CSV file containing the relevant data. When disabled, no export can be made.
Configure the automatic logout after a specified amount of time by clicking on the relevant bar. This adds an extra layer of security, automatically logging out the user after a set number of minutes. Adjust the number field to select the desired time in minutes according to your company needs.
Similarly, click on the bar next to this setting to automatically log out the user after a defined period of inactivity. Adjust the number field to select the desired time in minutes according to your company preferences.
This setting requires every user in the organization to enable a two factor authentication method. For a step-by-step setup guide, see Enabling Multi-Factor Authentication (MFA).
All changes are automatically saved.
The IP firewall restricts access to your project so that only users connecting from approved IP addresses can log in. When enabled, any request from an IP address that is not on the allow list is blocked.
For a detailed guide on enabling the firewall, managing the allow list, and supported IP formats, see Set up the IP firewall.
If you have any questions or run into any issues along the way, don't hesitate to contact our support team - we're here to help you get the most out of our secure platform.
This guide will go through the process of enabling MFA on your account.
Multi-Factor Authentication (MFA) adds an extra layer of protection to your account, ensuring that only you can access it, even if your password is compromised.
In the "Settings" page, go to the "Account" tab. This will take you to the section where you can manage various account settings, including the Multi-Factor Authentication setup.
Under the Authentication Settings, you can find the option to enable Multi-Factor Authentication.
Once you've completed the setup, you may be asked to verify your identity to ensure the Multi-Factor Authentication is functioning correctly.
If you are an administrator, you have the capability to monitor the MFA status of members in your team. Simply navigate to the admin dashboard or designated admin section, where you'll find a list of team members and their respective MFA status.
If you ever need to make changes to your MFA settings or encounter any issues during the setup process, our support team is here to assist you.
This guide outlines how to authenticate users using Single Sign-On (SSO) instead of password authentication.
Users who were added with password authentication will retain the ability to log in with their password even after SSO is enabled. Both authentication methods will work unless you disable password authentication organization-wide.
Make sure you have:
First, set up SSO authentication for your organization so users can log in with their work credentials:
Once SSO is enabled, all users in your organization will see the SSO login option on the Tekst login page, even if they were originally added with password authentication.
Since Tekst doesn't automatically force users to switch authentication methods, you need to inform your team:
https://<yourcompany>.tekst.com)Create a short video or screenshot guide showing the new SSO login process. This helps users understand exactly what changed and reduces support requests.
After enabling SSO, you can check which authentication methods your users are using:
When a user logs in with SSO for the first time, their authentication methods are automatically updated to include the SSO provider. You'll see this reflected in the Authentication column.
| Symptom | Likely cause | Resolution |
|---|---|---|
| User doesn't see SSO option on login page | SSO method is not enabled in Tekst | Go to Settings → SSO and ensure the SSO method is enabled and configured correctly |
| User sees "SSO not configured" error | SSO metadata or certificates are incorrect | Review your SSO configuration and update the Federation Metadata XML or certificates |
| User can't log in with SSO on mobile | Certificate renewal or configuration issue | Check that your identity provider's certificates are current and properly configured in Tekst |
| Authentication column still shows "UPA" after user logged in with SSO | User hasn't actually logged in with SSO yet | Confirm the user is clicking the SSO button, not entering their password on the login page |
If you encounter issues switching users to SSO, collect the following information before contacting support:
This guide walks you through connecting the Tekst MCP server to Gemini CLI. Once connected, Gemini can use Tekst tools to retrieve process mining data, analytics, automation history, and more.
A Tekst admin must enable MCP access for your workspace first. In Tekst, go to Settings > Security, find the Model Context Protocol (MCP) section, and turn on Enable Model Context Protocol (MCP). Users cannot connect until this setting is on.
Once MCP is enabled, each user still needs to add the Tekst server to their Gemini CLI configuration and authenticate with their own Tekst credentials.
Before connecting, make sure you have:
The Tekst MCP server is available at:
https://mcp.tekst.com
The server uses the Streamable HTTP transport and supports OAuth 2.0 with dynamic client registration, so Gemini CLI can discover the required endpoints automatically.
There are two ways to register the Tekst MCP server: a one-line command, or editing your settings file directly.
gemini mcp add commandgemini mcp add tekst --httpUrl https://mcp.tekst.com
Start Gemini CLI by running gemini in your terminal.
Type /mcp to view the configured servers. Tekst appears in the list with a status indicating it needs authentication.
Run /mcp auth tekst and follow the prompts. Your browser opens the Tekst login page - sign in with your Tekst credentials and authorize access.
Once authenticated, /mcp shows Tekst as connected and lists the available tools.
settings.json manuallyIf you prefer to manage your Gemini configuration directly, add Tekst to the mcpServers block in ~/.gemini/settings.json (user scope) or .gemini/settings.json (project scope):
{
"mcpServers": {
"tekst": {
"httpUrl": "https://mcp.tekst.com"
}
}
}
After saving the file, start Gemini CLI and run /mcp auth tekst to complete the OAuth flow.
Gemini CLI provides several /mcp subcommands to manage your servers:
/mcp - List all configured MCP servers, their status, and the tools they expose/mcp auth tekst - Start or refresh the OAuth login for Tekst/mcp disable tekst - Temporarily disable the Tekst server without removing it/mcp enable tekst - Re-enable the Tekst serverTo remove the integration entirely, run gemini mcp remove tekst or delete the tekst entry from your settings.json.
The Tekst MCP integration uses OAuth 2.0 with PKCE for secure authentication. When you connect, you sign in through the standard Tekst login page - your credentials are never shared with Gemini.
Key security details:
/mcp disable tekst or by removing the server from your settingsOnce connected, you can ask Gemini questions about your Tekst workspace in natural language. For example:
Gemini will use the Tekst MCP tools to retrieve the relevant data and answer based on your actual workspace.
/mcp does not show TekstConfirm that the tekst entry was written to the correct settings.json (user-scope at ~/.gemini/settings.json or project-scope at .gemini/settings.json). Restart Gemini CLI after editing the file.
mcp.tekst.com./mcp auth tekst again to restart the flow.See the Tekst MCP Troubleshooting guide for general MCP troubleshooting, including session expiry, permission errors, and analytics query issues.
For additional help, contact Tekst support at support@tekst.com.
The Tekst MCP integration lets you connect your Tekst workspace to AI assistants like Claude and Microsoft Copilot Studio. Once connected, you can ask questions about your processes, automations, analytics, and AI models in natural language - and get answers grounded in your actual data.
The Model Context Protocol (MCP) is an open standard that allows AI assistants to securely connect to external data sources and tools. Instead of copying data into prompts manually, MCP gives your AI assistant direct, read-only access to your Tekst workspace. It retrieves the information it needs to answer your questions on the fly.
With the Tekst MCP integration, your AI assistant can:
The integration is currently read-only. Your AI assistant can retrieve and analyze data but cannot make changes to your Tekst workspace.
To start using the Tekst MCP integration:
Connect your AI client - Follow the setup guide for your platform:
Explore the available tools - See what data your AI assistant can access in the Available Tekst MCP Tools article.
Try some examples - Not sure what to ask? The Tekst MCP Usage Examples article walks through common prompts and what happens behind the scenes.
If you run into issues connecting or using the integration, see the Tekst MCP Troubleshooting guide.
This article covers common issues you may encounter when using the Tekst MCP integration, and how to resolve them.
Your Tekst MCP session expires after 30 minutes of inactivity. If your AI assistant reports that it cannot access your Tekst data, start a new conversation or reconnect the integration. Your client will prompt you to re-authenticate if needed.
The MCP session is locked to the workspace you authenticated with. If you need to access a different workspace, disconnect the integration and reconnect using credentials for the desired workspace.
If your AI assistant reports that certain Tekst tools are unavailable, verify that:
If your assistant returns empty results when querying your data:
The tools available to you depend on your role in the Tekst workspace. If you receive a permission error, check with your workspace administrator to confirm your access level.
When your AI assistant runs analytics queries on your behalf, errors can occur if:
If query results seem incorrect:
Make sure you have the latest version of Claude Code installed. Update by running:
npm install -g @anthropic-ai/claude-code@latest
If the browser-based authentication does not complete successfully:
Make sure Generative Orchestration is enabled on your agent. MCP tools require this setting to be active in Copilot Studio.
If the dynamic discovery OAuth option does not work, try the Dynamic or Manual OAuth configuration instead. See the Copilot Studio connection guide for detailed steps.
If you continue to experience issues with the Tekst MCP integration:
This guide walks you through connecting the Tekst MCP server to a Microsoft Copilot Studio agent. Once connected, your agent can use Tekst tools to retrieve process mining data, analytics, automation history, and more.
Two setup steps must be completed before users can interact with Tekst data through a Copilot Studio agent.
A Tekst admin must enable MCP access for your workspace first. In Tekst, go to Settings > Security, find the Model Context Protocol (MCP) section, and turn on Enable Model Context Protocol (MCP). Users cannot connect until this setting is on.
A Copilot Studio agent creator must add the Tekst MCP server to their agent. This is a one-time setup per agent - follow the steps below to complete it. Each agent that needs access to Tekst data requires its own MCP connection.
Before you begin, make sure you have:
The recommended way to connect is using the built-in MCP onboarding wizard in Copilot Studio.
Click Add a tool.
Under Create new, select Model Context Protocol.
https://mcp.tekst.com
For authentication type, select OAuth 2.0.
Select Dynamic discovery as the OAuth 2.0 type. The Tekst MCP server supports OAuth 2.0 dynamic client registration with discovery, which is the simplest configuration option.
Click Create. A browser window opens for Tekst authentication. Sign in with your Tekst credentials and authorize access.
Once the connection is established, click Add and configure to finish adding the Tekst MCP server to your agent.
After adding the server, the Tekst tools are automatically registered in your agent. To test:
Open the Test panel in Copilot Studio.
Send a message like "List me my automations in the Tekst platform."
If prompted, click Open connection manager to sign in to Tekst.
Once authenticated, the agent retrieves data from your Tekst workspace and responds.
Make sure Generative Orchestration is enabled on your agent. MCP tools require this setting to be active.
Verify that your Tekst account has access to the workspace you want to connect.
If dynamic discovery fails, try the Dynamic OAuth option instead and manually provide:
https://mcp.tekst.com/.well-known/oauth-authorization-server
For additional help, contact Tekst support at support@tekst.com.
Tekst provides a remote MCP server that gives your AI assistant direct access to your Tekst data. This means you can ask questions about your processes, integrations, automations, analytics, and AI models - and get answers grounded in your actual Tekst workspace.
This guide explains how to connect your Tekst account to any MCP-compatible AI client.
A Tekst admin must enable MCP access for your workspace first. In Tekst, go to Settings > Security, find the Model Context Protocol (MCP) section, and turn on Enable Model Context Protocol (MCP). Users cannot connect until this setting is on.
Once MCP is enabled, each user still needs to add the Tekst connector to their AI platform and authenticate with their own Tekst credentials. Follow the connection steps below for your specific client.
Before connecting, make sure you have:
The Tekst MCP server is available at:
https://mcp.tekst.com
Use this URL when configuring the connection in your MCP client. The server uses the Streamable HTTP transport.
Go to Claude.ai and sign in.
Go to Customize and open the Connectors section.
Click +, then select Add custom connector.
Tekst as the name and https://mcp.tekst.com as the server URL. You do not need to provide any OAuth credentials - leave those fields empty.Click Add, then click Connect.
You will be redirected to the Tekst login page. Sign in with your Tekst credentials and authorize access.
The steps for Claude Desktop are the same as for Claude.ai - follow the Claude.ai steps above.
claude mcp add --transport http tekst https://mcp.tekst.com
Start Claude Code by running claude in your terminal.
Type /mcp to open the MCP management menu. Tekst appears in the list with a warning that it needs authentication.
╭─────────────────────────────────────────────────────────────╮
│ │
│ Status: △ needs authentication │
│ Auth: ✘ not authenticated │
│ URL: https://mcp.tekst.com │
│ Config location: /Users/<you>/.claude.json │
│ │
│ ❯ 1. Authenticate │
│ 2. Disable │
╰─────────────────────────────────────────────────────────────╯
Most MCP-compatible AI clients follow a similar pattern:
Open your client's settings or integrations page.
Add a new MCP server with the URL https://mcp.tekst.com.
Select Streamable HTTP as the transport type if prompted.
When prompted for authentication, select OAuth 2.0. The Tekst MCP server supports OAuth 2.0 with dynamic client registration, so your client can automatically discover the required endpoints.
You will be redirected to the Tekst login page. Sign in with your Tekst credentials and authorize access.
Once authorized, the Tekst tools become available in your conversations.
For platform-specific instructions, see Connect Tekst to Microsoft Copilot Studio.
The Tekst MCP integration uses OAuth 2.0 with PKCE for secure authentication. When you connect, you sign in through the standard Tekst login page - your credentials are never shared with your AI assistant.
Key security details:
Once connected, you can ask your AI assistant questions about your Tekst workspace in natural language. For example:
Your AI assistant will use the Tekst MCP tools to retrieve the relevant data and provide you with answers.
This article lists all the tools available through the Tekst MCP server. All tools are currently read-only - your AI assistant can retrieve and analyze your data but cannot make changes to your Tekst workspace.
List models - Lists all AI models in your workspace (classification and extraction), including their names and statuses. Returns summary fields only - use Get model details for full information. Supports pagination.
Get model details - Returns detailed information about a specific AI model. For classification models, the response includes the model's labels (tags). For extraction models, it includes the model's entities. The modelKind field indicates which type was returned.
List integrations - Lists all active data source integrations (such as Zendesk, Salesforce, Gmail, and others), including their names and types. Returns summary fields only - use Get integration details for full information. Supports pagination.
Get integration details - Returns configuration and sync status for a specific integration.
List processes - Lists all active process mining processes (discovered workflows), including their names, draft status, linked integrations, and throughput time target. Supports pagination.
Get activities - Lists all activities (steps) discovered in a specific process. Activities can be classification-based (from message content) or system-based (such as tag added or thread closed). Returns each activity's name, type, visibility status, occurrence count, and description. Also indicates whether each activity was manually added - only manually added activities can be removed. Supports pagination.
Get process graph - Returns details for a specific process, including name, draft status, linked integrations, number of discovered variants, and throughput time target. Use Get graph paths to retrieve the actual variant paths with per-edge metrics.
Get graph paths - Returns individual paths (variants) through a process. Each path includes the sequence of activities, case frequency, and throughput time per edge. Supports filtering by time range and integration, and sorting by case frequency, throughput time, or path length. Returns a link to view the variant in the Tekst UI when available.
Get totals - Returns aggregate KPIs across all processes, including total case frequency, average throughput time, and the number of paths meeting the throughput time target. Supports time-range filtering.
Describe tables - Returns the schema (column names, ClickHouse types, and descriptions) for all available analytics tables. Tables must always be prefixed with analytics. in queries (for example, analytics.mcp_threads). Always call this before running a query to confirm which columns and types exist. When aggregating data, always include a filter on thread_time, message_created_at, or day to limit the time range and avoid slow or timed-out queries.
Query analytics - Executes a read-only SQL query against the ClickHouse analytics database. Tables must be prefixed with analytics. (for example, analytics.mcp_threads). Always include a filter on thread_time, message_created_at, or day to scope queries to a time range when aggregating data. Use this to answer custom questions about your ticket data, message volumes, and automation performance.
Sample table - Returns a sample of rows from one of the core analytics tables (mcp_threads, mcp_messages, or mcp_automation_block_runs) so you can inspect the data before writing a query. Note: sampling rows does not replace calling Describe tables - always describe the schema before running a query.
List automations - Lists all automation flows in your workspace, including their names and running status. Returns summary fields only - use Get automation details for full information. Supports pagination.
Get automation details - Returns full details for a specific automation flow, including its blocks, creator, connected integrations, and aggregate success/failure stats over a recent time window.
Get Automation Monitor - Returns the execution history for a specific automation flow. Each entry represents a thread run with its status and block results. Supports filtering by block and status, with pagination.
Get Automation Run - Returns detailed information about a single automation run, including individual block results, the integration, and the thread involved. Use Get Automation Monitor first to find run IDs.
List available block types - Lists all block types that can be used when building an automation flow. Supports minimal or full detail, including configuration schemas. You can also filter by specific block types.
List available actions - Lists actions available for an automation flow or a specific integration, including any custom actions. Supports filtering by flow, integration, or search query.
Get action schema - Returns the parameter schema for a specific integration action or custom action, including what parameters are required and what values are valid.
Get condition schema - Returns the condition group schema, valid variables, and operators for building condition blocks in an automation flow.
Seamlessly connecting the Tekst platform with SAP S/4HANA via SAP Cloud Integration (CPI) is a streamlined process designed for secure and efficient data exchange. By utilizing the OAuth v2 standard on the Tekst platform, you establish a robust security foundation. Once the specific iFlows are imported into CPI and the connection is verified, the integration is ready for immediate use.
Tekst integrates with SAP S/4HANA through SAP Integration Suite (CPI) for two simple use cases:
Tekst Cloud <-- HTTPS + OAuth 2.0 --> SAP BTP
|
v
Integration Suite (CPI iFlows)
|
v
Cloud Connector (if on-premise)
|
v
SAP S/4HANA (OData / BAPI)
The Tekst Cloud sends GET /masterdata and POST /salesorder requests to SAP BTP. Integration Suite (CPI iFlows) processes those calls, optionally routes them through a Cloud Connector when S/4HANA is on-premise, and then talks to SAP S/4HANA over OData or BAPI.
/oauth/authorize)Authorization:
https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/authorize
Token:
https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token
Tekst requests master data on demand - no caching, no sync.
GET https://{customer-cpi-host}/http/tekst/masterdata/customers?id=1000123
Authorization: Bearer {access_token}
Response:
{
"customerId": "1000123",
"name": "Acme Corp",
"address": "...",
"creditLimit": 50000,
"paymentTerms": "NET30"
}
Available master data endpoints:
/masterdata/customers - Customer master (KNA1)/masterdata/materials - Material master (MARA/MAKT)/masterdata/partners - Business partnersTekst creates sales orders directly in SAP.
POST https://{customer-cpi-host}/http/tekst/salesorder
Authorization: Bearer {access_token}
Content-Type: application/json
{
"orderType": "OR",
"soldToParty": "1000123",
"purchaseOrderNumber": "PO-2025-001",
"requestedDeliveryDate": "2025-12-15",
"items": [
{
"material": "MAT-001",
"quantity": 10,
"unit": "PC"
}
]
}
Response:
{
"salesOrderNumber": "0000012345",
"status": "created",
"netValue": 1500.00,
"currency": "EUR"
}
| Component | Purpose |
|---|---|
| SAP BTP Account | Hosts Integration Suite |
| Integration Suite | Runs the iFlows |
| Cloud Connector | Only if S/4HANA is on-premise |
| Destination | Points to S/4HANA system |
Tekst provides pre-built iFlow packages that customers import into their CPI tenant:
.zip from Tekst portalTime: 5-10 minutes
| iFlow | Function |
|---|---|
| Tekst_MasterData | Receives GET requests, calls S/4 OData, returns JSON |
| Tekst_SalesOrder | Receives POST, calls BAPI_SALESORDER_CREATEFROMDAT2, returns result |
| Aspect | Implementation |
|---|---|
| Authentication | OAuth 2.0 (no passwords stored) |
| Authorization | User grants explicit consent |
| Transport | HTTPS/TLS 1.3 |
| Token storage | Encrypted at rest in Tekst |
| Revocation | User can disconnect anytime in SAP BTP |
| Audit | All calls logged by SAP |
| Step | Description | Time |
|---|---|---|
| 1 | Click "Connect SAP" in Tekst, redirects to SAP login | 30 sec |
| 2 | Login & approve access, OAuth tokens exchanged | 30 sec |
| 3 | Import iFlow package to CPI, deploy iFlows | 5 min |
| 4 | Test connection, Tekst verifies API access | 10 sec |
| Ready to use | Total time: 10 min |
| What | How |
|---|---|
| Get master data | GET request to CPI, returns JSON |
| Create sales order | POST request to CPI, creates in SAP |
| Authentication | OAuth 2.0 via SAP BTP |
| Middleware | SAP Integration Suite (CPI) |
| Setup time | ~10 minutes |
| Maintenance | None (SAP-managed infrastructure) |
Connect your SAP S/4HANA system to Tekst using SAP BTP service key credentials. This enables Tekst to execute iFlows and automate workflows across your SAP environment.
You'll need access to your SAP BTP Cockpit and permissions to view or create service keys for an SAP Process Integration Runtime instance.
In Tekst's connection setup, select Service Key Connection as your authentication method.
SAP User Login is not yet available. Use Service Key Connection for all SAP S/4HANA integrations.
Log into your SAP BTP Cockpit
Select your Subaccount
Click Instances and Subscriptions in the left sidebar
Look for the SAP Process Integration Runtime service in the Instances section (Service Technical Name: it-rt).
You must use an SAP Process Integration Runtime instance. This service provides the permissions needed to execute iFlows with Tekst.
Click the SAP Process Integration Runtime instance name to open details
Navigate to the Service Keys tab
If no service key exists, click Create to generate one
Click your service key name or the View button to display the JSON
Your service key JSON contains these four required values:
{
"oauth": {
"clientid": "sb-xxxxx...",
"clientsecret": "xxxxx...",
"tokenurl": "https://your-tenant.authentication.sap.hana.ondemand.com/oauth/token",
"url": "https://your-tenant.it-cpitrial06-rt.cfapps.us10-001.hana.ondemand.com"
}
}
Keep this window open while you enter credentials in Tekst.
Copy the values from your service key JSON into Tekst's connection form:
Tekst Field | SAP JSON Field | Pattern to Verify |
|---|---|---|
Client ID |
| Starts with |
Client Secret |
| UUID format (with |
Token URL |
| Contains |
CPI Runtime URL |
| Contains |
Copy and paste values exactly as they appear in the JSON to avoid authentication errors.
Click Save & Test Connection to verify your credentials.
If credentials are correct, you'll see confirmation that your SAP S/4HANA connection is established. You can now run integrations and automations across your SAP environment.
Connection successful! Tekst can now execute iFlows and automate workflows in your SAP S/4HANA system.
Inbox groups let you organize your integrations into named collections. Once created, groups appear across the platform - most notably in Analytics, where they let you view metrics for a specific set of inboxes at a glance instead of filtering one by one.
Navigate to the Integrations page from the main navigation menu. Click on any integration row to open its side panel.
In the side panel, locate the Groups field. Start typing a group name:
The integration is immediately added to the group. You can assign multiple groups to a single integration.
Click Save to confirm the group assignment.
You can also assign groups in bulk from the Integrations table:
All selected integrations are added to the chosen group.
The Integrations table includes a Groups column that displays each integration's group memberships as badges. You can filter the table by group using the column header filter to quickly find all integrations belonging to a specific group.
Groups are designed to give you a quick, high-level view of performance across related inboxes in Analytics.
At the top of the Analytics dashboard, a horizontal scroll bar displays all available groups. Each group shows the number of new conversations in parentheses next to its name.
Click a group to filter the entire dashboard - volume insights, topic insights, and the message feed - down to only the inboxes in that group.
To set a group as your default view, click on it in the filter bar. The platform remembers your last selected group per organization, so the next time you open Analytics, it loads that group automatically.
If you have many groups, you can pin the ones you use most often so they always appear first in the filter bar. Click the pin icon next to a group name to pin or unpin it.
Besides selecting a group, you can also click All in the filter bar and manually pick individual inboxes from the dropdown. Select the inboxes you want and click Apply.
When viewing messages in the message feed, you can filter by group:
To remove a group assignment, open the integration side panel, locate the Groups field, and click the x on the group badge you want to remove. Save your changes.
If a group is removed from all integrations, it no longer appears anywhere on the platform.
This guide walks you through connecting integrations to Tekst. You'll learn how to add providers like Salesforce, Outlook, SAP, and others to automate workflows across your systems.
Before connecting an integration, ensure you have:
Some integrations require provider-specific setup. Check provider-specific guides for detailed prerequisites.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
To connect a new provider:
The connection form varies by provider, but typically includes:
Fill in the required fields (marked with a red asterisk) and click Connect to proceed.
Most integrations use OAuth for secure authentication:
Tekst does not store your data. All processing happens in real-time, ensuring GDPR compliance and enterprise security standards.
After authorization, the setup wizard guides you through configuration:
Editing a previous wizard step resets information entered in subsequent steps. A warning modal will appear to confirm this action before proceeding.
Once you click Finish, Tekst initiates the sync process:
You can now navigate back to the Integrations page to view your active connection. The table displays real-time sync status and health information.
After connecting, your integration can display different statuses:
This article guides administrators through the steps to update integrations effectively within the Tekst platform.
Navigate to Settings > Integrations in your Tekst dashboard. This section can be found in the bottom left corner on the Tekst App. In this section, you can customize and manage the integrations.
While on the Integrations page, simply click the on the desired integration to modify its properties. A side panel will open with the information of the integration. Edit the settings you want.
Save your changes by clicking on the "Save" button after making the necessary adjustments in the integration settings.
Congratulations! You have successfully edited and saved your new integration name on Tekst. If you encounter any issues or have further questions, feel free to refer to our support documentation or reach out to our customer support team.
This guide will aid in solving common issues when trying to connect to an integration on Tekst.
Symptoms: Errors like "No code" or "Failed to get access token" appear after authorization.
Solution:
Symptoms: Message stating "This connection already exists in another org" or "Inbox connected to another org."
Solution:
Symptoms: "Authentication failed" for username/password integrations, or "API limit exceeded" for providers like Salesforce.
Solution:
Symptoms: Unable to proceed to the next step in the setup wizard.
Solution:
If you encounter permission-related errors, contact your organization admin to update your permissions.
Symptoms: Integration requests from Tekst fail to reach your service, webhook deliveries time out, or custom step calls are rejected.
Solution:
In this guide we will go through the steps to connect to a Looker integration on the Tekst App.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Looker" and click on "Connect"
Create a username that fulfills the below requirements:
This process creates a user within your customer-specific Amazon Redshift environment, allowing access to fetch data directly from Looker.
Be sure to securely store the generated username and password in a password management tool for future use.
Add an Amazon Redshift datasource connector to your Looker project. Use your username and password to authenticate and following parameters:
Server URL: customer.redshift.tekst.com
Database: data
Port: 5439
Select "Public" as the schema and add the "datasources" and "threads" tables to your environment.
If you have an issue following this guide or have any other questions, please submit a request or send your question to support@tekst.com.
In this guide we will go through the steps to connect to a Power BI integration on the Tekst App.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Power BI" and click on "Connect"
Create a username that fulfills the below requirements:
This process creates a user within your customer-specific Amazon Redshift environment, allowing access to fetch data directly from Power BI.
Be sure to securely store the generated username and password in a password management tool for future use.
Add an Amazon Redshift datasource connector to your Power BI project. Use your username and password to authenticate and following parameters:
Server URL: customer.redshift.tekst.com
Database: data
Port: 5439
Select "Public" as the schema and add the "datasources" and "threads" tables to your environment.
If you have an issue following this guide or have any other questions, please submit a request or send your question to support@tekst.com.
In this guide we will go through the steps to connect to a Metabase integration on the Tekst App.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Metabase" and click on "Connect"
Create a username that fulfills the below requirements:
This process creates a user within your customer-specific Amazon Redshift environment, allowing access to fetch data directly from Metabase.
Be sure to securely store the generated username and password in a password management tool for future use.
Add an Amazon Redshift datasource connector to your Metabase project. Use your username and password to authenticate and following parameters:
Server URL: customer.redshift.tekst.com
Database: data
Port: 5439
Select "Public" as the schema and add the "datasources" and "threads" tables to your environment.
If you have an issue following this guide or have any other questions, please submit a request or send your question to support@tekst.com.
In this guide we will go through the steps to connect to a Qlik integration on the Tekst App.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Qlik" and click on "Connect"
Create a username that fulfills the below requirements:
This process creates a user within your customer-specific Amazon Redshift environment, allowing access to fetch data directly from Qlik.
Be sure to securely store the generated username and password in a password management tool for future use.
Add an Amazon Redshift datasource connector to your Qlik project. Use your username and password to authenticate and following parameters:
Server URL: customer.redshift.tekst.com
Database: data
Port: 5439
Select "Public" as the owner and add the "datasources" and "threads" tables to your environment.
If you have an issue following this guide or have any other questions, please submit a request or send your question to support@tekst.com.
In this guide we will go through the steps to connect to a Tableau integration on the Tekst App.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Tableau" and click on "Connect"
Create a username that fulfills the below requirements:
This process creates a user within your customer-specific Amazon Redshift environment, allowing access to fetch data directly from Tableau.
Be sure to securely store the generated username and password in a password management tool for future use.
Add an Amazon Redshift datasource connector to your Tableau project. Use your username and password to authenticate and following parameters:
Server URL: customer.redshift.tekst.com
Database: data
Port: 5439
Select the "public" schema and add the "datasources" and "threads" tables to your environment.
If you have an issue following this guide or have any other questions, please submit a request or send your question to support@tekst.com.
This guide explains the structure of the Tekst data, which is organized into three main tables: `datasources`, `threads`, and `messages`.
The datasource table contains information about your connected data sources:
| Column Name | Data Type | Description |
| id | VARCHAR(256) | Unique identifier for the integration |
| name | VARCHAR(256) | Name of the integration (usually email address) |
| type | VARCHAR(256) | Type of integration (e.g. outlook, salesforce, ...) |
The threads table contains aggregate information about email threads:
| Column Name | Data Type | Description |
| integration_id | VARCHAR | Unique identifier linking to datasources.id |
| thread_id | VARCHAR | Unique identifier for the thread |
| time | TIMESTAMP | Timestamp of the thread |
| status | VARCHAR | Thread status ('replied' or 'open') |
| messages | INTEGER | Number of messages in the thread |
| participants | INTEGER | Number of participants in the thread |
| first_response_time_seconds | REAL | Time to first response in seconds |
| model_* | VARCHAR | Multiple columns for each model (e.g., model_topic, model_region) |
The messages table contains detailed information about individual email messages:
| Column Name | Data Type | Description |
| integration_id | VARCHAR | Unique identifier linking to datasources.id |
| thread_id | VARCHAR | Unique identifier linking to threads.thread_id |
| message_id | VARCHAR | Unique identifier for the message |
| time | TIMESTAMP | Timestamp of the message |
| type | VARCHAR | Message type ('sent' or 'received') |
| thread_number | INTEGER | Sequential number of the message in the thread |
| receiver | VARCHAR | Array of receiver domain names |
| sender | VARCHAR | Sender domain name |
| cc | VARCHAR | Array of CC domain names |
| bcc | VARCHAR | Array of BCC domain names |
| how_received | VARCHAR | How the message was received ('sender', 'receiver', 'cc', 'bcc', or 'unknown') |
For more information about specific columns or data types, please contact our support team.
At this moment Tekst supports the following file types on the ftp integration:
For other file types please contact your onboarding manager or customer success manager.
This article explains how to add more email integrations to an existing Gmail service account in Tekst.
Prerequisites: You must have already set up a Gmail service account integration.
Success! The newly added email integration will now sync with Tekst and any automations or rules set up for your Gmail service account will apply to this additional email address.
After adding the email address, you can verify it was properly integrated by:
This is most likely due to an invalid email format. Make sure that you have entered a valid mail address and try again.
The error message might indicate the email already exists or that the service account lacks access.
There might be a sync delay or delegation configuration issues. Allow up to 24 hours for integration to begin syncing. If it has been longer, check that domain wide delegation is properly configured in your Google Workspace Admin Console.
This article describes the permissions needed to make the integration between Infor M3 and Tekst work.
To create the Infor M3 integration, you will need following configurations in Infor M3
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Infor M3" and click on "Connect"
This guide outlines how to build automated workflows that connect Tekst AI with Infor M3 to process emails, create orders, and validate data without manual intervention. These examples show real-world automation scenarios for manufacturing and distribution operations.
This workflow converts incoming email purchase orders into confirmed M3 sales orders automatically.
Your sales team receives 50+ email orders daily. Each requires manual data entry into M3, taking 15 minutes per order. This workflow automates the entire process.
This workflow reduces order processing from 15 minutes to under 30 seconds, delivering instant confirmations to customers.
Validate customer information exists in M3 before processing order requests, preventing errors and duplicate work.
New customers often send orders before their account is set up in M3. This workflow catches missing customers early and routes requests appropriately.
This validation prevents incomplete orders and ensures your team sets up new customers correctly before processing their first order.
Process orders with multiple line items efficiently, handling high-volume scenarios common in manufacturing.
Large distributor receives orders with 20-50 line items. Manual entry is error-prone and time-consuming. This workflow handles complex orders automatically.
Trigger: Email with subject containing "BULK ORDER" or attachment with multiple items
Extract Line Items: Tekst AI builds array of all products:
[
{item: "SKU001", quantity: 100, delivery: "2025-02-15"},
{item: "SKU002", quantity: 250, delivery: "2025-02-15"},
{item: "SKU003", quantity: 75, delivery: "2025-02-20"}
]
Validate All Items: Loop through each item with Get Item action
Get Customer: Look up customer once for entire order
Create Order with All Lines: Build single M3 order with complete line item array
Confirm Order: Update to confirmed status
Generate Summary: Send detailed confirmation listing all items, quantities, and delivery dates
Enable batch processing settings in M3 integration for faster handling of orders with 10+ line items.
Automatically send professional confirmation emails to customers after M3 order creation, improving customer experience.
Customers expect immediate order confirmations with tracking details. This workflow delivers confirmations within seconds of order placement.
Trigger: Order successfully confirmed in M3 (status 20-25)
Gather Order Details: Retrieve from previous workflow steps:
Format Email: Use template with M3 data:
Subject: Order Confirmation #[ORNO]
Dear [Customer Name],
Your order has been confirmed and will be processed shortly.
Order Number: [ORNO]
Order Date: [Date]
Expected Delivery: [Delivery Date]
Items:
- [ITNO]: [Quantity] units
- [ITNO]: [Quantity] units
Thank you for your business.
Send Email: Deliver to customer's email address
Log Communication: Record confirmation sent in CRM or M3 notes
Instant confirmations reduce "where's my order?" inquiries and improve customer satisfaction scores.
Handle edge cases and exceptions gracefully by routing complex orders to human reviewers when automation confidence is low.
Some orders contain ambiguous data, special pricing, or unusual requests that require human judgment before processing.
Exception routing ensures automation handles 80-90% of orders fully, while maintaining quality control for complex cases.
Process orders from international customers in their native languages, extracting data accurately across 20+ languages.
European distributor receives orders in Dutch, French, German, and English. This workflow handles all languages uniformly.
Train Tekst on multilingual product catalogs and common phrases in each market to improve extraction accuracy for regional SKU aliases.
For high-volume operations, connect M3 workflows to Infor Data Lake for real-time data synchronization and analytics.
Manufacturing enterprise processes 1,000+ orders daily and needs real-time visibility into order status, inventory, and customer data.
Customers typically achieve 90%+ automation rates within 6 weeks of deployment with proper training and workflow optimization.
This guide will help to resolve common connection, authentication, and order creation issues with the Infor M3 integration. It will cover error messages, their causes, and step-by-step solutions.
Error message: "Invalid credentials" or "Authentication failed"
Causes:
Solutions:
Ensure URLs use HTTPS protocol and do not include trailing slashes, as this causes authentication failures.
Error message: "This Infor M3 system is connected to another organisation"
Cause:
The M3 instance is already linked to a different Tekst organization. Each M3 system can connect to only one Tekst account.
Solutions:
Error message: "Missing credentials" or empty authentication fields
Cause:
Required credential fields were not saved or were cleared during configuration.
Solutions:
Error message: "Connection test failed" or timeout errors
Causes:
Solutions:
OAuth tokens refresh automatically, but manual re-authentication can resolve persistent timeout issues.
Error message: "Failed to create order" or "Order creation returned error"
Causes:
Solutions:
Always perform customer and item lookups before order creation to catch validation errors early in the workflow.
Error message: "Orphaned order needs manual cleanup" or "Order header created but lines failed"
Cause:
The order header was created successfully (status 10), but adding line items failed. This leaves an incomplete order in M3.
Solutions:
Orphaned orders remain in status 10 (unconfirmed) and require manual intervention in M3 to complete or cancel.
Error message: "No customer found" or "Invalid CUNO"
Causes:
Solutions:
Error message: "Item not found" or "Invalid ITNO"
Causes:
Solutions:
Training Tekst on your M3-specific item codes and product aliases significantly reduces validation errors.
Error message: "Failed to confirm order" or "Status update failed"
Causes:
Solutions:
Symptoms:
Solutions:
Initial training on historical email data typically achieves 90%+ accuracy. Custom training further improves industry-specific extraction.
Symptoms:
Solutions:
If these solutions don't resolve your issue:
This guide is intended for IT administrators who are setting up the Outlook integration with Tekst on behalf of their organization. It walks through every step that needs to be completed on your side and points to the detailed articles for each task.
The Outlook integration is the most commonly used integration on the Tekst platform, and most organizations connect it through a dedicated service account so that mailbox access is centralized, auditable, and independent of individual users.
Before Tekst can connect to your Outlook environment, the following needs to be completed in your Microsoft 365 tenant:
Once the steps above are complete, please share the following with your Tekst contact so we can activate the connection:
Treat the client secret as a password and share it through a secure channel.
Register a new application in your Azure AD tenant, generate a client secret, and configure the Microsoft Graph permissions the integration needs. The required permissions are:
Mail.ReadWriteMail.SendUser.Read.AllAfter adding the permissions, grant admin consent on behalf of your organization.
For detailed screenshots and walkthroughs of the Azure configuration, see Configure Outlook Access in Azure and Outlook prerequisites.
Create a dedicated user in Microsoft 365 that will be used only by the Tekst integration:
The service account needs permission to read and write on the mailboxes that Tekst will process. Historically this was done by assigning the Exchange ApplicationImpersonation role. If that role is still available in your tenant, assign it to the service account.
If the role is not available, use an application access policy instead (see the next step) to grant and scope mailbox access.
By default, the integration can access every mailbox in your tenant. We strongly recommend limiting access to only the mailboxes Tekst needs to process, using a mail-enabled security group and an application access policy.
For the full PowerShell instructions, see Scope Service Account Access for Outlook.
Once the Azure app, service account, and (optionally) access policy are in place, send the Tenant ID, Application (Client) ID, Client Secret, and service account email address to your Tekst contact through a secure channel.
After Tekst receives your connection details, we will activate the integration on your workspace. You can then connect individual mailboxes and shared mailboxes from the Tekst app:
If you run into any issues during setup, contact us at support@tekst.com and we will help you troubleshoot.
Some users experience delays when opening, searching, or processing emails in shared mailboxes connected to the Tekst platform. It may seem like Tekst is responding slowly, but in most cases the cause is not on Tekst's side.
Tekst processes messages and data centrally in the cloud. Our systems are functioning normally. The slow performance is caused by the way Outlook and employees' local computers handle the mailbox data.
By default, Outlook fully synchronizes shared mailboxes to the local computer using a so-called OST cache. When a shared mailbox contains a large amount of historical emails, attachments, and folders, this cache file grows significantly. Computers with limited free disk space or outdated hardware then have to work hard for every action - such as opening, searching, or sorting.
| Action | How |
|---|---|
| Limit or disable caching | Outlook → Account Settings → More Settings → Advanced. Disable "Download shared folders", or set the cache period to 1–3 months. |
| Clean up the mailbox | Delete old emails and large attachments, or archive them to a separate folder. |
| Free up disk space | Ensure computers have sufficient free disk space (at least 10–15% of total disk capacity). |
| Update Outlook | Check that Outlook is up to date via File → Office Account → Update Options. |
| Upgrade hardware | For outdated hardware, upgrading to an SSD is the most impactful investment for faster Outlook performance. |
Tekst is always ready to confirm that our side is functioning correctly and to share log files or status reports if needed. However, the cause of the delay lies in the local IT environment - the solution should therefore be implemented there.
Have questions or want us to take a look? Contact us at support@tekst.com.
When connecting Outlook to Tekst via a service account, the integration is granted access to all mailboxes within your tenant by default. This guide explains how administrators can restrict access to only the specific mailboxes that are relevant for use with Tekst.
Open PowerShell and connect to Exchange Online:
Connect-ExchangeOnline
For details, see Microsoft's guide on how to connect to Exchange Online PowerShell.
You will need the following information:
b2094c09-0651-49c4-b2c2-ed3b739e2a8c
PolicyScopeGroupId.Run the following command, replacing PolicyScopeGroupId with your security group's email address and Description with a meaningful description:
New-ApplicationAccessPolicy `
-AppId b2094c09-0651-49c4-b2c2-ed3b739e2a8c `
-PolicyScopeGroupId <your-group@yourdomain.com> `
-AccessRight RestrictAccess `
-Description "Restrict Tekst app to members of the security group"
Verify the policy works correctly by testing it against a specific user mailbox:
Test-ApplicationAccessPolicy `
-Identity <user@yourdomain.com> `
-AppId b2094c09-0651-49c4-b2c2-ed3b739e2a8c
The output will indicate whether the app has access to the specified user's mailbox. Test with both a user inside and outside of the security group to confirm the policy is applied correctly.
If you encounter errors related to your PowerShell version, update to the latest version. The Exchange Online PowerShell module requires PowerShell version 3.0 or higher. Check your version by running:
$PSVersionTable.PSVersion
Refer to Microsoft's official documentation for installation instructions.
Application access policies may take up to 30 minutes to propagate. If the policy does not seem to be working after creation, wait and test again.
This guide is based on Microsoft's documentation on limiting application permissions to specific mailboxes.
This article outlines the permissions required to enable the integration between Outlook and Tekst. While these permissions are enabled by default, they may be restricted as organizations implement stricter security policies.
To ensure the integration functions correctly, these permissions must be granted through Azure Active Directory (AAD).
To be able to give Tekst access to a user mailbox the following permissions need to be given:
When also connecting shared inboxes these additional permissions need to be given:
This is how this looks during the setup flow
This guide will aid you to connect an Outlook integration on the Tekst App to perform certain actions.
Go to this article for detailed steps.
These settings allow Tekst to:
Tekst will never delete emails.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
To connect a new provider:
Select between 'Personal Outlook account' and 'Organization-wide Outlook account'.
For Personal outlook accounts, If you also want to connect shared email addresses linked to this user mail address then click the "Allow access to shared mailboxes" to add these in a later phase.
Most integrations use OAuth for secure authentication:
Tekst does not store your data. All processing happens in real-time, ensuring GDPR compliance and enterprise security standards.
After authorization, the setup wizard guides you through configuration:
Editing a previous wizard step resets information entered in subsequent steps. A warning modal will appear to confirm this action before proceeding.
Once you click Finish, Tekst initiates the sync process:
Symptom: "Admin consent not true" error or "Permissions denied" during connection.
Fix: Check if all permissions are correctly configured. If missing re-grant admin consent and try to "Reconnect" in the Tekst App.
Symptom: Integration shows "Unhealthy" or "Disconnected" despite successful initial setup.
Causes:
Fix:
Tekst automatically falls back to polling during token issues, so data sync continues with minor delays.
Without any additional styling, the tags added by Tekst will be grey. This can be customized in your Outlook mailbox.
Go to "View settings" in the "View" tab.
Navigate to "Account" -> "Categories"
Create categories and assign a color
Make sure that the category name is the same name as the tags applied by Tekst.
Tekst supports multiple methods for connecting your communication channels. This article provides an overview of the available connection methods and helps you choose the right one for your setup.
Tekst offers native integrations with popular platforms:
For custom setups, Tekst provides a REST API that allows you to send messages programmatically. This is ideal for platforms that are not natively supported.
Upload files in bulk via FTP or SFTP for batch processing of documents and attachments.
If you need assistance choosing or setting up a connection method, please contact our support team.
This guide provides instructions for setting up the configurations to access data from Salesforce and create a Salesforce integration on the Tekst App.
Follow the following steps to create a Tekst Integration User which is necessary to access the data from Salesforce.
Last Name: [Tekst] (https://Tekst) (or similar)
Alias: Auto-filled by Salesforce
Email: Integration User's email (as per the note)
Username: Use the email of the integration user.
Role: Leave as is.
License: Select Salesforce Integration
Profile: Choose or create a profile with the necessary permissions.
Enable the Service Cloud User setting.
Choose a time-zone, locale, and language according to your needs.
Follow the following steps to set the basic permissions for the Tekst Integration user.
In order to let Tekst create/update cases with the correct date, one must allow the salesforce integration user to update audit fields upon creation.
If you do not see this option, it is possible that 'enabling this option' is disabled.
To enable it, go to "User Interface" settings, and under the "Setup" section, enable the "Enable Set Audit Fields upon Record Creation and Update Records with Inactive Owners User Permissions".
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Salesforce" and click on "Connect"
Once the integration user is set up, proceed to the Tekst dashboard for API authorization.
Log out of the normal administrator user or use an incognito window browser.
Select the Salesforce environment (Production or Sandbox) and log in as the Tekst Integration User
Read permissions and click "Allow"
The status of the Salesforce integration on the Tekst dashboard should be "connected" now.
Custom fields in the Case object enhance configuration based on your needs.
Common practices include:
Consult with your Tekst contact to determine the best setup for your use case.
By completing these steps, you have successfully prepared your Salesforce instance for integration with Tekst, enabling seamless data access and interaction.
This guide outlines when and how the Salesforce APIs are used to help estimate performance impact.
Periodically retraining customer models using historical case data.
Salesforce Bulk Query v2 API
Real-time processing of individual cases.
Standard REST API
Real-time event notification.
Salesforce PubSub API
This information should help estimate the performance impact of implementing Tekst's intelligent capabilities within Salesforce.
This guide goes over the three methods for real-time access to new or updates Salesforce objects.
Change Data Capture (CDC) is a native feature in Salesforce that enables the platform to emit events when objects are created or modified. Tekst can subscribe to these events to receive real-time updates on new or updated records.
Since Salesforce controls the event stream, CDC offers limited configurability.
Not all Salesforce editions include access to CDC, and the number of events allowed depends on your specific Salesforce subscription plan.
Platform events are a native feature in Salesforce and function similarly to Change Data Capture. They can be used to emit events related to object changes, including creations. Platform Events are more configurable and customizable, offering more flexibility and control. However, they are not available out of the box - they must be manually configured by your Salesforce administrator.
Note: Platform Event API names always end with the suffix ___e_. Be sure to include this suffix when referencing or configuring the event.
All field types that platform events support are:
After creation this event still needs to be fired.
There are a few methods, we would like to reference to the following Salesforce Trailblazers guide for the different methods.
As an alternative to the Salesforce CDC API, Tekst offers the option to send custom webhooks (via SFDC) to notify the platform of custom object creations or updates.
Web-hook origins are verified by Tekst using an API-key, stored in the 'x-API-key' header. For each request to the hooks endpoint of Tekst, only valid and authenticated web-hooks will be processed.
To get an API-key, follow the next steps:
Important: You can have a maximum of two API-keys active at any given time. If needed, revoke older keys to generate new ones.
Be aware: after closing this pop-up, you will no longer be able to view this key.To revoke the key:
For custom webhook integration, an authenticated POST request must be sent to the following endpoint, using the specifications outlined below:
The integration=xxx should contain the integration id, this can be copied from the example code.
| Request type | POST |
| URL | https://api.tekst.com/api/integrations/salesforce/hook?integration=xxx |
| Authentication | x-API-key header with a valid key for this connector*. |
| Payload |
{ "eventType": "new" | "update", // depends on if it's a new or an update of an Object "caseId": "id" // the salesforce unique identifier: case Id } |
| Topic | Change Data Capture | Platform events |
| Setup | Salesforce native, not much configuration Channels with filtering will have to be created and configured |
More setup needed: Need to setup the triggers and create platform event (not native). |
| Configurability | Really minimal, only object is configurable Filter for channels can be used to fire limited set of events |
Really configurable, can add fields that will broadcast. Only broadcast on certain relevant cases, only update on a close etc. |
| Trigger | Not configurable On every create, update and delete of a case, delete events may be less relevant Filter for channels can be used to trigger relevant cases. Update of a case by Tekst will re-trigger an event |
Configurable Only on create and important update events |
| Limits |
Salesforce Salesforce Limit on CDC events, similar to platform events |
Salesforce Salesforce Limit on platform events, similar to CDC |
| Split between Salesforce child instances* | Events only get split to the child event in a later time once it has been fetched. A bit less resource split compared to platform events. | Can send the in the platform event immediately the field on which a child gets split off resulting in an earlier division of resources. Effect is minimal. |
* Salesforce child instances is a concept that Tekst uses to split 1 salesforce instance connected to the platform in multiple separate inboxes instead of one.
Advantages are: stricter permissions, more control on models and resource split between each child instance.
This manual outlines the steps to revoke access to Tekst's Salesforce integration.
There are two main techniques. It is crucial to follow the appropriate method based on your requirements.
This method is standard for all integrations, including Salesforce.
Delete integration from Tekst's dashboard:
Access the Tekst dashboard.
Locate the integration you want to revoke.
Delete the integration.
Automated revocation:
Once the integration is deleted, access is automatically revoked.
All connections are permanently severed.
Contact support:
If you specifically want to revoke access to Salesforce, follow these steps:
Login as a Tekst integration user:
Navigate to OAuth connected apps:
Initiate revocation:
Find the Tekst-connected app.
Click on "Revoke" to remove access.
Note: Revoking access through this method will disable all Tekst products connected to Salesforce. If you plan to proceed, it’s essential to inform your Tekst Customer Success Manager in advance.
You can remove Tekst’s access to the Salesforce integration either by following the general process used for all integrations or by using Salesforce-specific methods. To avoid disruptions, please proceed with caution and ensure appropriate planning before revoking access.
This guide will go over the 3 different possibilities to connect to SAP ECC on the Tekst App. It will give an overview on the setup and the pros and cons.
| CTS | ABAPGit | Manual Creation | |
| Pros | Low effort Less time Standard SAP way, well-documented | Once configured, pull and push require very little effort & time Compliant to DevOps standards Out of SAP Versioning also possible | No setup required No Basis administration involvement Can fully comply with the client’s naming and other standards |
| Cons | Not feasible/practical if developed objects do not conform to client standards Sometimes tricky if objects are spread across multiple transports | Although officially supported by SAP, it is a third-party solution Not available out of the box i.e. installation and configuration is required on source and target systems | Time required might be high depending on number of objects Subsequent changes/fixes can be tricky to keep track of Manual activity, prone to errors/omissions |
This guide gives a breakdown of the most commonly needed data types, organized by priority to process sales order IDocs in SAP ECC.
These records must be configured before IDocs can be processed:
Depending on your business rules and order types, you may also need:
When an IDoc arrives without matching master data, the system typically rejects the order or marks it for manual review. This delays fulfillment and creates rework. Pre-loading or validating these records during setup ensures smooth, automated order processing.
Pro tip: Work with your SAP system administrator to run a data completeness audit before going live. Check that all customer, material, and organizational master records are current and linked correctly. This prevents IDocs from bouncing back due to missing references.
Common issue: Orders fail silently if the Plant or Sales Organization is missing or inactive. Always verify these are marked as "active" in your SAP configuration, not just present in the database.
If IDocs are failing during processing:
If you need help troubleshooting a specific IDoc error, reach out to support with the IDoc number and the error message from SAP's application log.
This article explains how to create a dedicated technical user in SAP Service Cloud (C4C) for OData access. This user is required to connect SAP Service Cloud with the Tekst platform. After completing the steps below, you will use the technical user credentials to set up the integration on your Tekst environment at customer.tekst.com.
Setting up a technical user for OData involves three steps:
A Communication System represents an external system that will connect to your SAP tenant.
myXXXXX.crm.ondemand.com)After saving the Communication System, you need to add a System Instance.
A Communication Arrangement links your Communication System to the OData services and defines which data the technical user can access.
On the Communication Arrangement page, configure the authentication method for the technical user.
_TEKSTODATA). Note this user ID - you will need it later.Still on the Communication Arrangement page, scroll down to the Services Used section. This section lists all available OData services that the technical user can access.
activitybusinesspartnerbusinesspartnerrelationshipbusinessusercontactcontactaccountNote: You can optionally mark services as Read Only if Tekst should only read data from that particular service without making updates.
Now that your technical user is configured in SAP, use its credentials to set up the integration on the Tekst platform.
_TEKSTODATA)Tekst will validate the connection to your SAP instance. Once verified, the integration is active and ready for configuration.
This guide explains how to use a custom hook to enable real-time events from SAP Service Cloud by configuring a webhook flow. These webhooks notify the Tekst platform whenever a case is created or updated.
Use a custom hook when you want more control over real-time event delivery.
Configure SAP Service Cloud to send a POST request to the Tekst hook endpoint.
| Request type | POST |
| URL | https://hooks.tekst.com/v1/webhook/v1/sapservicecloud/{orgId}/{integrationId} |
| Payload | |
| Extra payload | You can also send extra fields such as body and subject. Tell Tekst customer success before you add them. |
You can find the full webhook URL (including your org ID and integration ID) in the Settings tab of your SAP Service Cloud integration in the Tekst dashboard.
This guide goes over the possible ways to connect to SAP Service Cloud on the Tekst App.
The user must have the following minimum permissions in SAP:
Read access to the textual fields of the case object
Read and write access to any fields that Tekst will update
(Refer to the SAP Possible Actions section for more details)
*Note: If you're using a custom object instead of the default case object, these permissions should be applied to the selected custom object.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
To connect a new provider:
Once the integration is deleted, access is automatically revoked. All connections are permanently severed.
For general revocation assistance, contact support@tekst.com.
If you specifically want to revoke access to SAP, follow the steps below:
Note: These steps apply only to integrations using username-password authentication.
The system only displays the first 20 users sorted by user ID number.
For more information about how to find a user in Identity Authentication, see Search Users from SAP.
Note: For SAP-specific instructions on revoking user access, refer to the official documentation:
SAP Help – Deactivate Users
In SAP Service Cloud, Tekst can perform various actions when cases are created or updated.
This article outlines the different actions that can be triggered based on case activity.
Note: If a different object is used instead of the default case (e.g., a custom object like Ticket), the available actions may vary accordingly.
Tekst can perform several default actions on cases within SAP Service Cloud, including:
1. Updating Fields
Tekst can update both standard fields - such as language and category - as well as custom fields and taxonomies.
Additionally, fields used during the gathering phase (part of the resolution process) can be automatically filled based on the case content.
2. Adding Notes
Textual notes can be added to a case to assist agents with additional context.
Examples include:
Case summaries
Suggested responses
Insights from external systems
3. Linking Related Objects
Tekst can also link relevant SAP objects to a case based on extracted textual data.
For instance, order data or other related business objects can be automatically associated with a case to streamline case resolution.
These default actions are generally available but certain use-cases might require more options. Contact customer success to discuss what might be useful for your specific use-case as additional actions provided by Tekst.
This article explains how Tekst uses API calls with SAP Service Cloud to automate case processing and train AI models. Understanding the API flow helps you estimate resource usage and plan your integration.
When Tekst processes cases in real-time through SAP Service Cloud, the following sequence of API calls occurs for each case:
SAP Service Cloud sends a webhook notification to Tekst when a new case is created. This initial ping triggers the automation workflow.
After receiving the notification, Tekst performs its AI-driven automation and updates the case by patching specific SAP fields. This is typically a single PATCH API call that updates fields such as:
For a complete list of fields Tekst can update, refer to SAP possible actions and Objects and fields used.
When a case is closed in SAP Service Cloud, another webhook notification is sent to Tekst. This signals that the case lifecycle is complete.
After closure, Tekst fetches the complete case data to check if any relevant fields have changed. This GET request retrieves the case with all updated field values to support Tekst's feedback mechanism, which:
This feedback loop is what enables Tekst models to continuously learn and achieve 90%+ accuracy in routing and classification over time.
For each case processed in real-time, expect the following API interactions:
The total API calls from Tekst to SAP per case is 2 calls (1 PATCH + 1 GET). SAP sends 2 webhook notifications to Tekst per case (create + close). Plan your API rate limits accordingly based on your expected case volume.
During initial setup or model retraining, Tekst uses bulk APIs to fetch historical messages and cases from SAP Service Cloud. The volume of API calls depends on:
Bulk fetching during training typically uses batch endpoints or pagination to minimize the total number of API requests. Contact your Tekst customer success team to understand the expected API usage for your specific training dataset.
When users access the Tekst platform at customer.tekst.com to review messages and AI predictions, Tekst fetches case data using standard GET requests. These API calls are triggered on-demand when:
These GET requests are minimal and occur only when users actively interact with the platform to review individual cases.
To optimize API consumption with your SAP Service Cloud integration:
For questions about API usage specific to your implementation or to discuss optimization strategies, contact your Tekst customer success team.
This article gives an overview of which objects and fields are used (in a default scenario) for SAP Service cloud.
Please note that this is not the v2 version.
| Object | Name | Description / Reason |
|---|---|---|
| ServiceRequest | ID | Unique identifier for the ticket |
| ServiceRequest | ObjectID | Internal object identifier |
| ServiceRequest | Subject | Ticket subject/title |
| ServiceRequest | Description | Main ticket description text |
| ServiceRequest | CreationDateTime | Timestamp when ticket was created |
| ServiceRequest | LastChangeDateTime | Last modification timestamp |
| ServiceRequest | CompletionDateTime | When ticket was resolved/closed |
| ServiceRequest | Status | Current ticket status |
| ServiceRequest | StatusText | Human-readable status description |
| ServiceRequest | LifeCycleStatus | System lifecycle status (Open, In Process, Closed) |
| ServiceRequest | Priority | Ticket priority level |
| ServiceRequest | PriorityText | Priority description |
| ServiceRequest | TypeCode | Document/Ticket type code |
| ServiceRequest | TypeCodeText | Document type description |
| ServiceRequest | Origin | Channel (Email, Phone, Web, etc.) |
| ServiceRequest | ProcessingTypeCode | Processing type identifier |
| ServiceRequest | CategoryID | Service category |
| ServiceRequest | IncidentCategoryID | Incident category (if applicable) |
| ServiceRequest | AssignedTo | Current assignee/agent |
| ServiceRequest | ProcessorPartyID | Processor/Agent ID |
| ServiceRequest | ReporterPartyID | Customer/Reporter ID |
| ServiceRequest | ReporterEmail | Reporter's email address |
| ServiceRequest | InitialReviewTime | Time to first response |
| ServiceRequest | LastAgentInteraction | Last agent interaction timestamp |
| ServiceRequest | ServiceLevelAgreement | SLA identifier |
| ServiceRequest | DueDateTime | SLA due date/time |
| ServiceRequest | *__c | All relevant custom fields for sentiment, product, escalation |
| Object | Name | Description/Reason |
|---|---|---|
| ServiceRequestInteraction | ID | Interaction identifier |
| ServiceRequestInteraction | ObjectId | Internal object ID |
| ServiceRequestInteraction | ServiceRequestObjectID | Link to parent ticket |
| ServiceRequestInteraction | TypeCode | Interaction type (Email, Phone, Chat, InternalMemo) |
| ServiceRequestInteraction | TypeCodeText | Interaction type description |
| ServiceRequestInteraction | Direction | Inbound/Outbound |
| ServiceRequestInteraction | CreationDateTime | When interaction occurred |
| ServiceRequestInteraction | Subject | Subject line (for emails) |
| ServiceRequestInteraction | Text | Content of the interaction/email body |
| ServiceRequestInteraction | FromAddress | Sender email (for email type) |
| ServiceRequestInteraction | FromName | Sender name |
| ServiceRequestInteraction | ToAddress | Recipients (for email type) |
| ServiceRequestInteraction | SentDateTime | When sent (for outbound) |
| ServiceRequestInteraction | ReceivedDateTime | When received (for inbound) |
| ServiceRequestInteraction | AuthorID | Who created the interaction |
| ServiceRequestInteraction | AuthorName | Author display name |
| ServiceRequestInteraction | Status | Interaction status |
| ServiceRequestInteraction | MessageID | Unique message ID (for emails) |
| Object | Name | Description/Reason |
| Attachment | ID | Attachment ID |
| Attachment | ObjectId | Internal identifier |
| Attachment | ParentObjectID | Link to parent (ticket or interaction) |
| Attachment | Name | File name |
| Attachment | MimeType | File type (PDF, JPEG, etc.) |
| Attachment | SizeInKb | File size |
| Attachment | CreationDateTime | Upload timestamp |
| Attachment | CategoryCode | Attachment category |
| Attachment | LinkWebURI | URL to access attachment |
| Object | Name | Description/Reason |
| ServiceRequestText | ID | Text entry ID |
| ServiceRequestText | ParentObjectID | Link to ticket |
| ServiceRequestText | TypeCode | Text type (InternalNote, AdditionalInfo) |
| ServiceRequestText | TypeCodeText | Text type description |
| ServiceRequestText | Text | Actual text content |
| ServiceRequestText | CreationDateTime | When text was added |
| ServiceRequestText | AuthorID | Who created the text |
The "Authentication check returned false" error occurs when Tekst\'s periodic health check fails to verify access to one or more of your connected SharePoint sites. While you may still be able to see the list of sites in the Tekst dashboard, the background synchronization is paused until the connection is refreshed.
This error is typically triggered when the individual site-level authentication fails, even if the broader Microsoft account remains connected. Common causes include:
Permission Revocation: A SharePoint Administrator may have removed Tekst\'s access to a specific site or library.
Site Deletion or URL Changes: If a site was deleted or its URL was renamed in SharePoint, the health check will fail for that specific entry.
Tenant-Level Restrictions: New security policies in your Microsoft 365 tenant might be blocking the integration.
Recent changes: it can take up to 12 hours for the changes on Microsoft to propagate to Tekst.
Tekst performs a deep health check for every individual site you have configured. If even one site fails to respond, the entire integration status may show as "Authentication failed" to prevent data inconsistencies.
In most cases, you can resolve this by re-triggering the Microsoft OAuth flow to refresh your access tokens.
Navigate to Settings > Integrations.
Locate the SharePoint row. You will likely see a red "Authentication failed" badge.
Click on the row to open the SharePoint settings.
Look through your list of connected sites. Any site causing the failure will typically be highlighted or show a disconnected status.
Verify with which client id and application id the integration was connected.
Verify the permission requests (e.g., Sites.Read.All, Files.Read).
Once changes are complete, the status badge in Tekst should turn green, and the "Authentication check returned false" error will disappear from your logs. This can take up to 12 hours to propagate from sharepoint to Tekst
If the error persists after reconnecting, check the following:
Global Admin Consent: Ensure your IT department has granted tenant-wide consent for the Tekst application in the Azure Portal.
Site Access: Verify that the account used to reconnect still has active "Read" permissions on the specific SharePoint sites you are trying to sync.
If a site has been permanently deleted in SharePoint, you must remove it from the Tekst configuration page to stop the health check from failing.
This guide outlines the steps to connect to a SharePoint integration on the Tekst App.
Your application should have the following permissions:
You can set up these permissions in your app registration under "API permissions".
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "SharePoint" and click on "Connect"
Fill in the required credentials of your service account:
These credentials can be found under App registrations in Microsoft Entra Admin Center.
Congratulations! You have successfully set up the SharePoint connector on Tekst.
This guide explains how to restrict access for a service account (with or without own client credentials).
By default, using a service account grants access to all SharePoint sites. However, this level of access is typically unnecessary. To follow the principle of least privilege, you should restrict access to only the specific sites required.
Before proceeding, ensure you have configured the Entra ID application registration with the Sites.Selected permission scope. For details on this step, please refer to our separate article on Entra ID configuration.
You can either use CLI for Microsoft 365 or PnP PowerShell to assign permissions.
When assigning permissions, you can choose from the following levels:
Select the permission level that best fits the service account's requirements, always following the principle of least privilege.
1. Login to Microsoft 365:
m365 login
2. Grant permissions to a specific site:
m365 spo site apppermission add --appId "YOUR_APP_ID" --permission \nfullcontrol --siteUrl "https://contoso.sharepoint.com/sites/your-site"
3. List existing permissions:
m365 spo site apppermission list --appId "YOUR_APP_ID" \n--siteUrl "https://contoso.sharepoint.com/sites/your-site"
4. Update permissions:
m365 spo site apppermission add --appId "YOUR_APP_ID" \n--permission read --siteUrl "https://contoso.sharepoint.com/sites/your-site"
5. Remove permissions:
m365 spo site apppermission remove --appId "YOUR_APP_ID" \n--siteUrl "https://contoso.sharepoint.com/sites/your-site"
1. Connect to SharePoint with the ClientId that was used to authenticate
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/your-site" -Interactive -ClientId XXXX
2. Grant permissions:
$permission = Grant-PnPAzureADAppSitePermission -AppId "YOUR_APP_ID" \n-DisplayName "YourAppName" -Permissions Write
3. Update permissions if needed:
Set-PnPAzureADAppSitePermission -PermissionId $permission.Id -Permissions FullControl
*Note: You must be a site collection admin to execute these commands.
PowerShell Version Requirements: If you encounter errors related to your PowerShell version when running these commands, it's recommended to update to the latest version. Some commands may require PowerShell 5.1 or higher for proper functionality. To check your PowerShell version, run $PSVersionTable.PSVersion in your PowerShell terminal. If you need to update PowerShell, refer to Microsoft's official documentation for the most current installation methods.
This article was written based on this blog post
This guide walks you through the steps to install and configure the Tekst Outlook App, which allows you to interact with Tekst automations directly from your Outlook inbox.
Once installed, the Tekst side panel will appear when viewing emails that are processed by your Tekst automations. From this panel you can:
If you encounter any issues during setup, please contact our support team for assistance.
This guide will walk you through the process of setting up the Zendesk connector on Tekst.
On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.
Click the Add Integration button in the top-right corner of the Integrations page to connect a new integration. A modal appears showing available providers, choose "Zendesk" and click on "Connect"
Fill in your Zendesk domain and click "Connect".
Log in to your Zendesk account and grant access to Tekst. Tekst needs this access to read incoming tickets and add labels.
Congratulations! You have successfully set up the Zendesk connector on Tekst.
If you have any questions or encounter issues during the setup process, don't hesitate to contact our support team for assistance. We're here to ensure a smooth integration experience for you!
This article describes the supported Zendesk actions and their configuration options.
This action allows you to add a public or internal comment to a Zendesk ticket.
Comment: The content of the comment.
Public or internal: A toggle to set the comment visibility.
HTML or Plain text: Choose the format of the comment. This is an optional field. Use html if you have certain formatting you want to use.
Author ID: The ID of the user adding the comment. This is an optional field. The internal comment will be shown to be added by this author. We propose to create an author called Tekst or similar.
This action updates a Zendesk custom field (such as a dropdown or multi-select field) with a specific value. Use this to categorize tickets based on their content - for example, automatically setting a "Category" field to "Technical Issue" when Tekst detects technical keywords.
This action is different from "Tag a ticket." Labels update structured custom fields, while tags add free-form text labels to tickets.
Configuration fields:
Field Identifier: The numeric ID of the Zendesk custom field you want to update (e.g., 1234567890).
Value: The string value of the specific option within that field (e.g., option_high_priority for a dropdown choice like "High Priority").
How to find the Field Identifier
In Zendesk, go to Admin Center > Objects and rules > Tickets > Fields.
Locate your custom field in the list. The Field ID column shows the identifier you need.
Click Edit on the field to view the option values. For dropdown and multi-select fields, you'll see both the display name and the underlying tag/value (typically in a format like option_name).
Alternatively, use the Zendesk API endpoint /api/v2/ticket_fields.json to retrieve all field IDs and their option values programmatically. The response will show the value property for each option, which is what you need for the Value parameter.
This action adds one or more tags to a ticket.
Tags is an (often used) example of a field, hence the small overlap with label a ticket.
This action updates the status of a Zendesk ticket.
This action is only available for integrations with Sunshine enabled.
This action sends a message to a WhatsApp conversation.
This guide will walk you through the process of setting up Sunshine support as an addition to Zendesk for Tekst. This integration enables advanced actions, such as sending WhatsApp messages, offering greater flexibility in your customer support workflow.
Follow the basic Zendesk integration article to set up a Zendesk connection.
After setting up the basic Zendesk integration:
To set up Sunshine support, you'll need to get the necessary API credentials from your Zendesk account:
In the Channels tab of your Zendesk integration on Tekst:
This guide provides instructions to set up a bot user in Zendesk, specifically for integration with Tekst apps. This bot user is designed to automatically respond to incoming tickets using predefined responses configured within the Tekst application.
For example, consider using a Tekst App that automatically generates a brief summary of a new customer support ticket and inserts it as an internal comment within the ticket thread.
1. Go to your support Zendesk domain and connect as an administrator.
2. Go to "Customers" and click on "Add"
3. Fill in a name (required) and e-mail address (optional)
Share the User ID of your newly created user with the Tekst support team via support@tekst.com.
This ID is required by the Tekst App to correctly reference the user when posting internal comments to Zendesk support tickets.
You can find the UserID by clicking on the newly created user and checking the URL:
https://acme.zendesk.com/agent/users/
If you change the subject line of an email in an Outlook conversation, Outlook treats the modified message as the start of a new, separate conversation. This means the original thread is split: messages with the old subject stay in one thread, while messages with the new subject appear in another.
Because Tekst relies on the conversation ID that Outlook assigns to group messages into threads, a subject change in Outlook results in:
Outlook uses the email subject line as a key component of its conversation ID (also called the thread ID). When you modify the subject, Outlook generates a new conversation ID for that message and any future replies to it. This is a limitation of how Outlook handles email threading - it is not something Tekst can override or work around.
Microsoft recommends that users do not change the subject line of an ongoing email conversation. In fact, newer versions of Outlook (desktop and web) have removed the ability to edit the subject line of a reply for exactly this reason. Microsoft recognizes that changing the subject breaks the conversation thread and leads to confusion.
Tekst aligns with this recommendation. Keeping the original subject line intact ensures that all messages in a conversation are grouped correctly in both Outlook and Tekst.
If a subject change has already split a conversation, the threads cannot be merged back together in Tekst. You can still view both threads individually in your message feed by searching for the sender or keywords from the conversation.
To prevent this from happening in the future:
Salesforce imposes a character limit on the HTML body of emails. To ensure that your emails are successfully delivered and displayed in Salesforce, our platform automatically handles emails that exceed this limit. This article explains how we process oversized HTML emails and what to expect in the user interface.
When an email's HTML body is too long for Salesforce, our system initiates an automatic cleaning process. This process involves two main steps:
This process may result in the removal of inline images. If an email is converted to plain text, inline images will not be displayed in Salesforce.
In the Tekst platform, you will still be able to see the content of the email, even if it has been shortened. Here's what to expect:
If you notice that images are missing from an email in Salesforce, it is likely due to the HTML body limit and our automatic cleaning process. To view the original email with images, you can check the original email in your email client.
Some users have asked whether the capitalization of Outlook labels matters for topic routing in Tekst. For example, if a label is "Service Claim" in one mailbox and "Service claim" in another, will they be treated as the same topic?
The short answer is: No, capitalization does not matter. Our system treats labels in a case-insensitive manner. "Service Claim" and "Service claim" will be routed to the same topic.
While the system handles capitalization differences, we recommend establishing a consistent naming convention for your labels. This will make it easier for your team to manage and understand the topics.
If you're seeing the same email appear in multiple threads on your dashboard, it's likely due to how the email was routed to your inboxes. Our platform creates a unique thread for each inbox an email is delivered to. This means that if an email is sent to multiple addresses, or forwarded from one inbox to another, it will appear as a separate thread for each instance.
This is the intended behavior of our system and not a bug. It ensures that every instance of an email is tracked, regardless of how it arrived in your inboxes.
To confirm that duplicate threads are being caused by your email routing, you can check the inbox associated with each thread. Here's how:
To prevent the same email from appearing in multiple threads, you'll need to adjust your email forwarding rules. The goal is to ensure that an email is only delivered to one inbox that is monitored by our platform.
Modifying your email forwarding rules can affect how your emails are delivered. Make sure you understand the changes you're making before proceeding. If you're unsure, consult with your email administrator.
Here are some general steps you can take:
For more information on how to manage your email settings, please refer to the documentation for your email provider.
This guide will explain the dual method-approach used by Tekst to keep mailboxes up-to-date. This
When you connect a mailbox, Tekst registers Microsoft Graph API subscriptions to monitor:
Webhooks deliver notifications within 5 minutes of changes. Subscriptions auto-renew every 6 hours to maintain continuous monitoring (Microsoft Graph subscriptions expire after 3-30 days depending on resource type).
If webhooks fail renewal after 3 retry attempts, Tekst automatically switches to hourly polling:
receivedDateTime filterAfter initial backfill, Tekst uses Microsoft Graph delta queries to fetch only changed items, storing a delta token for each mailbox to minimize API calls and improve performance.
Real-time sync reduces manual triage time by up to 200% for shared inboxes by enabling immediate AI categorization and workflow triggers.
Tekst processes customer data using a streaming architecture: the content of emails, tickets, and cases is handled ephemerally and never stored permanently. This article explains what metadata Tekst does store, how the feedback loop works, and how models are retrained.
Tekst does not persist any PII, message content, or confidential information. All content is processed in real time and discarded after classification.
However, Tekst does store metadata that is essential for monitoring and improving model performance:
This metadata contains no message body text, attachments, customer names, or other personal data.
The learning process relies on a real-time feedback loop between Tekst and the customer's platform (e.g., Salesforce, SAP CEC, Outlook):
When a new ticket or email arrives, the customer's platform sends an event to Tekst. Tekst reads the content via API, runs its AI models, and writes the predictions (category, assignment, priority) back to the platform. The content is processed in memory and not stored. Only the prediction metadata is persisted.
When an agent reviews the ticket and changes a field that Tekst predicted (e.g., selects a different category), the customer's platform sends an update or closure event back to Tekst. Tekst records only the final metadata values and compares them to its original prediction. This tells Tekst whether it was correct or whether the agent made a correction.
The accumulated feedback metadata is used to evaluate model accuracy. Retraining is not scheduled on a fixed cadence (e.g., nightly). Instead, it is triggered by two conditions:
During the initial onboarding phase, retraining happens more frequently to rapidly build accuracy. Once the model is stable, retraining occurs only when one of the above conditions is met. Retraining typically takes between 1 and 12 hours depending on model complexity.
The webhook or API notification that the customer's platform sends back to Tekst (e.g., "case updated" or "case closed") is critical for the learning process. Without it, Tekst would have no way to know whether its predictions were accepted or corrected by the agent. These hooks transmit only metadata (final field values, IDs, timestamps), not ticket content.
Monitoring model and tag accuracy ensures your models and, therefore, your automations are performing as well as possible.
In order to view model and tag accuracy, you need first to have:
In order to make sure the model and tag accuracy is as accurate as possible, a confidence level is used. This confidence level is based on the amount of feedback that was received for a certain tag (with feedback being the correction or verification of a tag prediction).
Confidence = Messages with feedback / All messages
Example: Tag is predicted 1000 times, and 500 times the prediction is followed with feedback. Confidence level = 50%.
Important to note is that there is also an absolute minimum of feedback that is needed:
The time period for including feedback in the confidence calculation is the past 30 days or until the last training date if this is less than 30 days ago.
Accuracy percentage is calculated as an F1-score, which is a combination of Recall and Precision percentage.
Recall = Correct messages with tag / All messages with tag
“Of all messages that should have this tag, what percentage did we correctly identify?”
1000 messages with feedback tag X
Of which 800 correctly predicted
→ 800 correct messages / 1000 messages = 0.80 (80%)
Precision = Correct predictions with tag / All predictions with tag
“Of all messages we tagged with this label, what percentage were correct?”
1000 predictions tag X
Of which 800 have correct feedback
→ 800 correct predictions / 1000 predictions = 0.80 (80%)
F1 = 2 * (Recall * Precision) / (Recall + Precision)
Within the side panel of a model or tag it is possible to see exactly how tags are mispredicted using the tag confusion. This shows on the left the original tag that was predicted and on the right the correct tag, together with the frequency of this confusion happening.
Note that confusion follows the same time window as confidence, the past 30 days or until the last training date if this is less than 30 days ago.
To maximize processing speed and minimize the risk of failures or delays, our platform uses an intelligent, dynamic method for selecting which AI models to use for real-time processing tasks.
How it works: Instead of using all available models, the system dynamically selects the most essential ones needed for a specific task. This ensures faster, more reliable performance for all real-time operations.
Our AI system has a comprehensive suite of models that work together in a processing block. However, not all of these models are required for every task.
What about the other models? Even if a model isn't selected for a real-time task, its predictions are still generated. These predictions are processed without a real-time constraint, ensuring that all data is eventually processed comprehensively.
To learn more about our AI models, you can read these related articles:
The training of custom models is fully managed by Tekst. Every customer has multiple models that are constantly monitored for performance. Customers will be able to validate the accuracy of the models in the Tekst portal. Tekst has built a pipeline where accuracy and feedback trigger automatic retraining.
Frequency depends on the accuracy drops. During the start of the project, models will be continuously retrained to achieve an already high accuracy before going live as this will be crucial gain end-user's trust.
If a new open source model becomes available, Tekst will test this model internally to validate performance. Once done, we evaluate which customer could benefit from the newest model.
At Tekst it is our main goal that every customer has at all times the best available and trained model for its business case.
You can monitor the progress of your model retraining to know when it's complete. This article explains how to find the status of your retraining jobs and provides information on timelines and notifications.
Navigate to the Models section in the Tekst platform.
Select the model you want to monitor.
In the top overview bar you will see the status of the retraining job. The status will indicate if the job is in progress, completed, or has failed.
Model retraining typically takes between 1 to 12 hours to complete. However, this timeline can vary depending on the complexity of the model and the amount of data being processed.
We recommend checking the status of your retraining job periodically for the most up-to-date information.
Once the retraining is complete, you can view the updated model in the "Models" section.
Tekst supports all languages, including those with Cyrillic and Uralic alphabets such as Hungarian and Bulgarian. We have multiple successful EMEA-wide (and worldwide) deployments that cover these languages.
Tekst AI models support the following exhaustive but not extensive list of languages. If a language does not appear in this list, please contact support to verify if your language is supported.
Note that the Tekst platform itself is English-only.
| Code | Language |
|---|---|
| af | Afrikaans |
| als | Alemannic German |
| am | Amharic |
| an | Aragonese |
| ar | Arabic |
| arz | Egyptian Arabic |
| as | Assamese |
| ast | Asturian |
| av | Avar |
| az | Azerbaijani |
| azb | South Azerbaijani |
| ba | Bashkir |
| bar | Bavarian |
| bcl | Central Bikol |
| be | Belarusian |
| bg | Bulgarian |
| bh | Bihari languages |
| bn | Bengali |
| bo | Tibetan |
| bpy | Bishnupriya Manipuri |
| br | Breton |
| bs | Bosnian |
| bxr | Buryat |
| ca | Catalan |
| cbk | Chavacano |
| ce | Chechen |
| ceb | Cebuano |
| ckb | Central Kurdish (Sorani) |
| co | Corsican |
| cs | Czech |
| cv | Chuvash |
| cy | Welsh |
| da | Danish |
| de | German |
| diq | Zazaki |
| dsb | Lower Sorbian |
| dty | Doteli |
| dv | Dhivehi (Maldivian) |
| el | Greek |
| eml | Emilian-Romagnol |
| en | English |
| eo | Esperanto |
| es | Spanish |
| et | Estonian |
| eu | Basque |
| fa | Persian |
| fi | Finnish |
| fr | French |
| frr | Northern Frisian |
| fy | Western Frisian |
| ga | Irish |
| gd | Scottish Gaelic |
| gl | Galician |
| gn | Guarani |
| gom | Goan Konkani |
| gu | Gujarati |
| gv | Manx |
| he | Hebrew |
| hi | Hindi |
| hif | Fiji Hindi |
| hr | Croatian |
| hsb | Upper Sorbian |
| ht | Haitian Creole |
| hu | Hungarian |
| hy | Armenian |
| ia | Interlingua |
| id | Indonesian |
| ie | Interlingue |
| ilo | Ilokano |
| io | Ido |
| is | Icelandic |
| it | Italian |
| ja | Japanese |
| jbo | Lojban |
| jv | Javanese |
| ka | Georgian |
| kk | Kazakh |
| km | Khmer |
| kn | Kannada |
| ko | Korean |
| krc | Karachay-Balkar |
| ku | Kurdish |
| kv | Komi |
| kw | Cornish |
| ky | Kyrgyz |
| la | Latin |
| lb | Luxembourgish |
| lez | Lezgian |
| li | Limburgish |
| lmo | Lombard |
| lo | Lao |
| lrc | Northern Luri |
| lt | Lithuanian |
| lv | Latvian |
| mai | Maithili |
| mg | Malagasy |
| mhr | Eastern Mari |
| min | Minangkabau |
| mk | Macedonian |
| ml | Malayalam |
| mn | Mongolian |
| mr | Marathi |
| mrj | Western Mari |
| ms | Malay |
| mt | Maltese |
| mwl | Mirandese |
| my | Burmese |
| myv | Erzya |
| mzn | Mazanderani |
| nah | Nahuatl |
| nap | Neapolitan |
| nds | Low German |
| ne | Nepali |
| new | Newar |
| nl | Dutch |
| nn | Norwegian Nynorsk |
| no | Norwegian |
| oc | Occitan |
| or | Odia (Oriya) |
| os | Ossetian |
| pa | Punjabi |
| pam | Pampanga |
| pfl | Palatine German |
| pl | Polish |
| pms | Piedmontese |
| pnb | Western Punjabi |
| ps | Pashto |
| pt | Portuguese |
| qu | Quechua |
| rm | Romansh |
| ro | Romanian |
| ru | Russian |
| rue | Rusyn |
| sa | Sanskrit |
| sah | Sakha (Yakut) |
| sc | Sardinian |
| scn | Sicilian |
| sco | Scots |
| sd | Sindhi |
| sh | Serbo-Croatian |
| si | Sinhala |
| sk | Slovak |
| sl | Slovenian |
| so | Somali |
| sq | Albanian |
| sr | Serbian |
| su | Sundanese |
| sv | Swedish |
| sw | Swahili |
| ta | Tamil |
| te | Telugu |
| tg | Tajik |
| th | Thai |
| tk | Turkmen |
| tl | Tagalog |
| tr | Turkish |
| tt | Tatar |
| tyv | Tuvan |
| ug | Uyghur |
| uk | Ukrainian |
| ur | Urdu |
| uz | Uzbek |
| vec | Venetian |
| vep | Veps |
| vi | Vietnamese |
| vls | West Flemish |
| vo | Volapük |
| wa | Walloon |
| war | Waray |
| wuu | Wu Chinese |
| xal | Kalmyk |
| xmf | Mingrelian |
| yi | Yiddish |
| yo | Yoruba |
| yue | Cantonese |
| zh | Chinese |
Tekst is capable of processing a wide variety of file types. This article provides a comprehensive list of all supported file formats and any limitations associated with them.
| File Type | Extensions | Notes |
|---|---|---|
| Plain Text | .txt | |
| HTML | .html, .htm | |
| Tekst can often recover and process corrupted PDFs. Password-protected or encrypted PDFs cannot be processed. | ||
| CSV | .csv | By default, only the first 1,000 rows are processed. Please contact support if you need to process more rows. |
| Microsoft Word | .doc, .docx | Encrypted documents (except those with an empty password) will not be processed. |
| Microsoft Excel | .xls, .xlsx, .xlsm, .xlsb | By default, only the first 1,000 rows per sheet are processed. Please contact support if you need to process more rows. Encrypted workbooks (except those with an empty password) will not be processed. |
| Email formats | .eml, .msg | Attachments within these email files are also processed, subject to the same limitations. This includes recursive attachments (e.g., an .eml file attached to another .eml file). |
| Images | .jpg, .jpeg, .png, .gif, .tiff, .bmp, .webp, .heic, .heif | |
| JSON | .json | |
| XML | .xml | |
| ZIP Archives | .zip | Files within a .zip archive are extracted and processed individually. All file types listed above are supported within a .zip archive. |
If you have any questions or encounter issues with file attachments, please don't hesitate to contact our support team for assistance.
This article explains the API settings section available on the Tekst platform.
To access the API settings page, navigate to the following URL:
https://{customer}.tekst.com/settings/apikeys
You can also reach this page from the dashboard by following: Settings > API Keys
The API settings section allows you to:
There are two methods for creating new API keys:
When explicitly creating an API key, you must provide a name and specify the appropriate scopes. For security best practices, we recommend avoiding overly broad scopes.
This article explains how to authenticate requests to the Tekst API.
To authenticate against an endpoint, you need a Tekst API key with sufficient scopes to access the specific endpoint. For detailed information about required scopes for each endpoint, please refer here.
Tekst API keys follow this format:
tkst-Y9S7tCt7EOxxxxx
There are two ways to obtain an API key:
To authenticate your request, include your API key in the x-api-key header. The value of this header should be the API key you received.
Example implementation in Postman:
x-api-key header in your requestPlease make sure the base path is https://api.tekst.com
This article provides an overview and access information for resources linked to the S3 API.
There are two main APIs available for S3 integration:
For detailed information about S3 integration APIs, please refer to the articles specific to S3 integration, which include comprehensive API documentation.
For access to other APIs not covered in this documentation, please contact your Tekst representative. They will provide you with the necessary API details and Swagger documentation to meet your specific needs.