Search

Integrations

An overview of all integration-related support articles.

Connect Tekst via Gemini

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.

Before you begin

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.

Prerequisites

Before connecting, make sure you have:

  • An active Tekst account with access to the workspace you want to connect
  • Gemini CLI installed and signed in
  • MCP enabled in your Tekst workspace (see above)

Tekst MCP server URL

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.

Connect Tekst to Gemini CLI

There are two ways to register the Tekst MCP server: a one-line command, or editing your settings file directly.

Option 1: Add via the gemini mcp add command

  1. Open your terminal and run:
gemini mcp add tekst --httpUrl https://mcp.tekst.com
  1. Start Gemini CLI by running gemini in your terminal.

  2. Type /mcp to view the configured servers. Tekst appears in the list with a status indicating it needs authentication.

  3. Run /mcp auth tekst and follow the prompts. Your browser opens the Tekst login page - sign in with your Tekst credentials and authorize access.

  4. Once authenticated, /mcp shows Tekst as connected and lists the available tools.

Option 2: Edit settings.json manually

If 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.

Managing the connection

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 server

To remove the integration entirely, run gemini mcp remove tekst or delete the tekst entry from your settings.json.

Authentication and security

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:

  • Gemini receives a scoped access token that only allows read access to your workspace
  • Your session is tied to a single workspace and cannot access other workspaces
  • Sessions expire after 30 minutes of inactivity
  • You can disconnect at any time with /mcp disable tekst or by removing the server from your settings

What happens after connecting

Once connected, you can ask Gemini questions about your Tekst workspace in natural language. For example:

  • "What processes do I have in Tekst?"
  • "Show me the automation execution history for my email routing flow"
  • "How many tickets were processed last week?"

Gemini will use the Tekst MCP tools to retrieve the relevant data and answer based on your actual workspace.

Troubleshooting

/mcp does not show Tekst

Confirm 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.

Authentication fails in the browser

  • Make sure your default browser is set correctly and pop-ups are allowed.
  • Check that no firewall or proxy is blocking the connection to mcp.tekst.com.
  • Run /mcp auth tekst again to restart the flow.

Tools are missing or return empty results

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.

See more
Tekst MCP Overview

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.

What is MCP?

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.

What can you do with it?

With the Tekst MCP integration, your AI assistant can:

  • Analyze process mining data - throughput times, bottlenecks, and variant comparisons
  • Review automation execution history and diagnose failures
  • Run SQL queries against your analytics database to answer custom questions about ticket volumes, message trends, and automation performance
  • Inspect AI model details and performance metrics
  • Audit your integrations and team access

The integration is currently read-only. Your AI assistant can retrieve and analyze data but cannot make changes to your Tekst workspace.

Getting started

To start using the Tekst MCP integration:

  1. Connect your AI client - Follow the setup guide for your platform:

  2. Explore the available tools - See what data your AI assistant can access in the Available Tekst MCP Tools article.

  3. Try some examples - Not sure what to ask? The Tekst MCP Usage Examples article walks through common prompts and what happens behind the scenes.

Troubleshooting

If you run into issues connecting or using the integration, see the Tekst MCP Troubleshooting guide.

See more
Tekst MCP Troubleshooting

This article covers common issues you may encounter when using the Tekst MCP integration, and how to resolve them.

Authentication issues

"Unable to connect" or login page does not appear

  • Make sure you are using an MCP-compatible AI client (such as Claude or Microsoft Copilot Studio).
  • Check that your browser allows pop-ups, as the authentication flow opens a login page in your browser.
  • Try disconnecting and reconnecting the integration from your AI client's settings.

Session expired

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.

Wrong workspace

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.

Data access issues

"Tool not found" or missing tools

If your AI assistant reports that certain Tekst tools are unavailable, verify that:

  • The Tekst integration is still connected in your client's settings.
  • Your session has not expired (see above).
  • You have the necessary permissions in your Tekst workspace to access the requested data.

Empty results

If your assistant returns empty results when querying your data:

  • Confirm that the data exists in your Tekst workspace by checking the Tekst platform directly.
  • For analytics queries, make sure you are asking about a time range that contains data.
  • For process mining tools, verify that the process is not in draft status if you expect it to have data.

Permission errors

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.

Analytics query issues

Query errors

When your AI assistant runs analytics queries on your behalf, errors can occur if:

  • The query references a column or table that does not exist. Ask your assistant to call the describe tables tool first to check the schema.
  • The query is missing a time filter. Analytics queries require filtering on a date or timestamp column.

Unexpected query results

If query results seem incorrect:

  • Ask your assistant to show you the SQL query it used so you can verify the logic.
  • Ask your assistant to sample the table first to understand the data format before running complex queries.

Connection issues in Claude Code

Command not recognized

Make sure you have the latest version of Claude Code installed. Update by running:

npm install -g @anthropic-ai/claude-code@latest

Authentication fails in terminal

If the browser-based authentication does not complete successfully:

  • Make sure your default browser is set correctly.
  • Try running the command again - the authentication flow will restart.
  • Check that no firewall or proxy is blocking the connection to mcp.tekst.com.

Connection issues in Microsoft Copilot Studio

Tools are not appearing

Make sure Generative Orchestration is enabled on your agent. MCP tools require this setting to be active in Copilot Studio.

Dynamic discovery fails

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.

Getting help

If you continue to experience issues with the Tekst MCP integration:

  • Contact Tekst support at support@tekst.com
  • Include details about the AI client you are using, the error message you received, and the steps you took before the error occurred.
See more
Connect Tekst to Microsoft Copilot Studio

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.

Before you begin

Two setup steps must be completed before users can interact with Tekst data through a Copilot Studio agent.

Step 1: Enable MCP in Tekst

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.

Step 2: Add Tekst to your Copilot Studio agent

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.

Prerequisites

Before you begin, make sure you have:

  • An active Tekst account with access to the workspace you want to connect
  • MCP enabled in your Tekst workspace (see above)
  • Access to Microsoft Copilot Studio with permissions to create or edit agents
  • Generative Orchestration enabled on your agent (required for MCP)

Connect using the MCP onboarding wizard

The recommended way to connect is using the built-in MCP onboarding wizard in Copilot Studio.

Step 1: Open the MCP wizard

  1. In Copilot Studio, open the agent you want to connect to Tekst. If you do not have an agent yet, click Agent on the home page to create one.

  1. Give your agent a name and click Create.

  1. Go to the Tools page.

  1. Click Add a tool.

  2. Under Create new, select Model Context Protocol.

Step 2: Configure server details

  1. Fill in the following fields:
  • Server name: Tekst
  • Server description: Access Tekst workspace data including process mining, automations, analytics, AI models, and integrations.
  • Server URL: https://mcp.tekst.com
  1. For authentication type, select OAuth 2.0.

  2. 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.

  1. Click Create. Copilot Studio automatically discovers the required OAuth endpoints from the Tekst MCP server.

Step 3: Create a connection

  1. After clicking Create, the Connect to Tekst Platform dialog opens automatically.

  1. Click Create. A browser window opens for Tekst authentication. Sign in with your Tekst credentials and authorize access.

  2. Once the connection is established, click Add and configure to finish adding the Tekst MCP server to your agent.

Test the connection

After adding the server, the Tekst tools are automatically registered in your agent. To test:

  1. Open the Test panel in Copilot Studio.

  2. Send a message like "List me my automations in the Tekst platform."

  3. If prompted, click Open connection manager to sign in to Tekst.

  4. Once authenticated, the agent retrieves data from your Tekst workspace and responds.

Troubleshooting

Tools are not appearing

Make sure Generative Orchestration is enabled on your agent. MCP tools require this setting to be active.

Authentication fails

Verify that your Tekst account has access to the workspace you want to connect.

Dynamic discovery does not work

If dynamic discovery fails, try the Dynamic OAuth option instead and manually provide:

  • Authorization URL: The URL shown at https://mcp.tekst.com/.well-known/oauth-authorization-server
  • Token URL: The token endpoint from the same discovery document

For additional help, contact Tekst support at support@tekst.com.

See more
Connect Tekst via Claude

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.

Before you begin

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.

Prerequisites

Before connecting, make sure you have:

  • An active Tekst account with access to the workspace you want to connect
  • An AI assistant or platform that supports MCP (such as Claude or Microsoft Copilot Studio)
  • MCP enabled in your Tekst workspace (see above)

Tekst MCP server URL

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.

Connect via Claude

Claude.ai

  1. Go to Claude.ai and sign in.

  2. Go to Customize and open the Connectors section.

  3. Click +, then select Add custom connector.

  1. Enter 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.

  1. Click Add, then click Connect.

  2. You will be redirected to the Tekst login page. Sign in with your Tekst credentials and authorize access.

Claude Desktop

The steps for Claude Desktop are the same as for Claude.ai - follow the Claude.ai steps above.

Claude Code

  1. Open your terminal and run the following command:
claude mcp add --transport http tekst https://mcp.tekst.com
  1. Start Claude Code by running claude in your terminal.

  2. 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                                                │
╰─────────────────────────────────────────────────────────────╯
  1. Select Authenticate and follow the prompts to sign in with your Tekst credentials in your browser.

Connect via other MCP clients

Most MCP-compatible AI clients follow a similar pattern:

  1. Open your client's settings or integrations page.

  2. Add a new MCP server with the URL https://mcp.tekst.com.

  3. Select Streamable HTTP as the transport type if prompted.

  4. 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.

  5. You will be redirected to the Tekst login page. Sign in with your Tekst credentials and authorize access.

  6. Once authorized, the Tekst tools become available in your conversations.

For platform-specific instructions, see Connect Tekst to Microsoft Copilot Studio.

Authentication and security

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:

  • Your AI assistant receives a scoped access token that only allows read access to your workspace
  • Your session is tied to a single workspace and cannot access other workspaces
  • Sessions expire after 30 minutes of inactivity
  • You can disconnect the integration at any time from your AI client's settings

What happens after connecting

Once connected, you can ask your AI assistant questions about your Tekst workspace in natural language. For example:

  • "What processes do I have in Tekst?"
  • "Show me the automation execution history for my email routing flow"
  • "How many tickets were processed last week?"

Your AI assistant will use the Tekst MCP tools to retrieve the relevant data and provide you with answers.

See more
Available Tekst MCP Tools

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.

Users

  • List users - Lists all members of the organisation, including their email addresses and roles. Supports pagination.

AI models

  • 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.

Integrations

  • 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.

Process mining

  • 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.

Analytics

  • 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.

Automations

  • 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.

See more

SAP S/4HANA

See all articles
SAP S/4HANA Integration via CPI

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.

Overview

Tekst integrates with SAP S/4HANA through SAP Integration Suite (CPI) for two simple use cases:

  • GET master data on demand (customers, materials, pricing, ...)
  • POST sales orders into SAP

Architecture

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 2.0 flow

How it works

  1. User clicks "Connect SAP" in Tekst
  2. Redirect to SAP BTP login (/oauth/authorize)
  3. User logs in with SAP credentials
  4. User approves Tekst access on consent screen
  5. SAP redirects back with authorization code
  6. Tekst exchanges code for access token + refresh token
  7. Tekst uses token for all subsequent API calls

Endpoints

Authorization:
https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/authorize

Token:
https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token

Token refresh

  • Access tokens expire (typically 12 hours)
  • Tekst automatically refreshes using the refresh token
  • User never needs to re-authenticate

API calls via CPI

Master data (GET)

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 partners

Sales order (POST)

Tekst 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"
}

CPI iFlow setup

What the customer needs

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

iFlow deployment

Tekst provides pre-built iFlow packages that customers import into their CPI tenant:

  1. Download .zip from Tekst portal
  2. Import in CPI Design workspace
  3. Configure destination (select their S/4HANA)
  4. Deploy

Time: 5-10 minutes

What the iFlows do

iFlow Function
Tekst_MasterData Receives GET requests, calls S/4 OData, returns JSON
Tekst_SalesOrder Receives POST, calls BAPI_SALESORDER_CREATEFROMDAT2, returns result

Security

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

Customer onboarding

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

Requirements summary

Customer responsibilities

  • SAP BTP with Integration Suite
  • Cloud Connector (if on-premise S/4HANA)
  • S/4HANA system with OData services enabled

Tekst responsibilities

  • OAuth 2.0 client (registered in SAP BTP)
  • Token management (secure storage + auto-refresh)
  • API client for CPI endpoints

Summary

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)
See more
Connect SAP S/4HANA via BTP Service Key

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.

Step 1: Choose Service Key Connection

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.

Step 2: Find Your Service Key in SAP BTP Cockpit

Navigate to Your Service Instance

  1. Log into your SAP BTP Cockpit

  2. Select your Subaccount

  3. Click Instances and Subscriptions in the left sidebar

SAP BTP Cockpit showing Instances and Subscriptions page with SAP Process Integration Runtime service listed

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.

Access the Service Key

  1. Click the SAP Process Integration Runtime instance name to open details

  2. Navigate to the Service Keys tab

  3. If no service key exists, click Create to generate one

  4. Click your service key name or the View button to display the JSON

Service key details showing JSON credentials including client ID, client secret, token URL, and runtime URL

Identify the Four Credential Values

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.

Step 3: 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

clientid

Starts with sb-

Client Secret

clientsecret

UUID format (with $ suffix)

Token URL

tokenurl

Contains authentication.sap.hana.ondemand.com

CPI Runtime URL

url

Contains it-cpi

Copy and paste values exactly as they appear in the JSON to avoid authentication errors.

Click Save & Test Connection to verify your credentials.

Step 4: Verify Connection

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.

See more

General Information

See all articles
Inbox groups

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.

Prerequisites

  • Role permissions: SUPPORT or ADMIN role. Users with the READER role cannot create or modify groups.

Creating a group

Step 1: Open the integration side panel

Navigate to the Integrations page from the main navigation menu. Click on any integration row to open its side panel.

Step 2: Add a group

In the side panel, locate the Groups field. Start typing a group name:

  • If the group already exists, select it from the autocomplete suggestions
  • If the group does not exist yet, type the full name and select the + new group option to create it

The integration is immediately added to the group. You can assign multiple groups to a single integration.

Step 3: Save your changes

Click Save to confirm the group assignment.

Adding multiple integrations to a group at once

You can also assign groups in bulk from the Integrations table:

  1. Select one or more integrations using the checkboxes in the table
  2. Click the Actions dropdown that appears
  3. Select Add to group
  4. Type a group name or select an existing one, then confirm

All selected integrations are added to the chosen group.

Viewing groups in the Integrations table

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.

Using groups in Analytics

Groups are designed to give you a quick, high-level view of performance across related inboxes in Analytics.

Group filter bar

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.

Setting a default 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.

Pinning groups

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.

Filtering by individual inboxes

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.

Using groups in the message feed

When viewing messages in the message feed, you can filter by group:

  1. Open the inbox filter
  2. Switch to the Groups tab
  3. Select one or more groups to show only messages from inboxes in those groups

Removing a group from an integration

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.

See more
Add an Integration

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.

Prerequisites

Before connecting an integration, ensure you have:

  • Role permissions: SUPPORT or ADMIN role (READER role has view-only access)
  • Provider account: Active account with the service you're connecting (e.g., Microsoft 365 for Outlook, Salesforce org)
  • Authentication credentials: Depending on the provider, you may need API keys, client credentials, or admin consent for OAuth
  • Network access: Ability to authorize redirects to Tekst's callback URLs

Some integrations require provider-specific setup. Check provider-specific guides for detailed prerequisites.

Step 1: Navigate to Integrations

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a New Integration

To connect a new provider:

  1. Click the Add Integration button in the top-right corner of the Integrations page
  2. A modal appears showing available providers (e.g., Outlook, Salesforce, SAP, HubSpot, Zendesk)
  3. Select the provider you want to connect by clicking its card
  4. A connection modal opens

Step 3: Enter Connection Details

The connection form varies by provider, but typically includes:

  • Email or username: Your account identifier (e.g., john.doe@tekst.com)
  • Authentication method: OAuth (most common) or API credentials (username/password for services like SAP)
  • Optional settings: Tenant ID, domain, environment type (production/sandbox for Salesforce)

Fill in the required fields (marked with a red asterisk) and click Connect to proceed.

Step 4: Authorize Access

Most integrations use OAuth for secure authentication:

  1. After clicking Connect, you're redirected to the provider's authorization page
  2. Log in to your provider account if prompted
  3. Review the permissions Tekst is requesting (e.g., read/write mail, access cases)
  4. Click Authorize or Grant Consent to allow access
  5. You're automatically redirected back to Tekst's setup wizard

Tekst does not store your data. All processing happens in real-time, ensuring GDPR compliance and enterprise security standards.

Step 5: Configure Integration Settings

After authorization, the setup wizard guides you through configuration:

  1. The wizard displays steps in a sidebar (e.g., "Connect Account" → "Configure Settings" → "Review")
  2. A progress bar shows your advancement through the setup process
  3. Complete each step:
    • Connect Account: Verify your authenticated account details
    • Configure Settings: Select objects, folders, or data sources to sync (e.g., which Salesforce cases or Outlook mailboxes to monitor)
    • Review: Confirm your settings before finalizing
  4. Click Next to advance between steps, or click Finish on the final screen to save your configuration

Editing a previous wizard step resets information entered in subsequent steps. A warning modal will appear to confirm this action before proceeding.

Step 6: Start Syncing

Once you click Finish, Tekst initiates the sync process:

  • The integration status updates to Connected (displayed as a green badge in the integrations table)
  • A progress bar shows the initial sync status
  • Optionally, you can enable backfilling to sync historical data

You can now navigate back to the Integrations page to view your active connection. The table displays real-time sync status and health information.

Understanding Integration Statuses

After connecting, your integration can display different statuses:

  • Connected (green): Integration is active and syncing data
  • Disconnected (red): Authentication failed or credentials expired. Click the status to reconnect.
  • Unconfigured (yellow): Setup wizard was started but not completed
  • Unhealthy: Sync errors occurred (e.g., API limits exceeded, permission issues). Check the status comment for details.
See more
Update an integration

This article guides administrators through the steps to update integrations effectively within the Tekst platform.

Step 1: Go to the "Integrations".

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. 

Step 2: Update integration

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.

Step 3: Save changes

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.

See more
Troubleshoot integrations

This guide will aid in solving common issues when trying to connect to an integration on Tekst.

OAuth Authorization Fails

Symptoms: Errors like "No code" or "Failed to get access token" appear after authorization.

Solution:

  • Click the Retry button to restart the authorization flow
  • Verify that Tekst's redirect URI is whitelisted in your provider's app registration (e.g., Azure AD for Outlook, Salesforce Connected App)
  • Ensure you're granting all required scopes during authorization

Duplicate Connection Error

Symptoms: Message stating "This connection already exists in another org" or "Inbox connected to another org."

Solution:

  • Switch to the correct organization where the connection was originally created
  • If you need to move the connection, ask an admin to disconnect it from the original org first

Invalid Credentials or API Limits

Symptoms: "Authentication failed" for username/password integrations, or "API limit exceeded" for providers like Salesforce.

Solution:

  • Reconnect the integration and verify credentials are correct
  • For API limits, use a dedicated integration user with appropriate OAuth client credentials (recommended for high-volume environments)
  • Wait for rate limits to reset, or contact your provider to increase limits

Locked Wizard Steps

Symptoms: Unable to proceed to the next step in the setup wizard.

Solution:

  • Complete all required fields in the current step before clicking Next
  • If you edited a previous step, re-enter information in subsequent steps as they were reset

If you encounter permission-related errors, contact your organization admin to update your permissions.

Tekst Blocked by Your Firewall

Symptoms: Integration requests from Tekst fail to reach your service, webhook deliveries time out, or custom step calls are rejected.

Solution:

  • Tekst uses fixed IP addresses for all outbound communication. If your firewall or service restricts incoming traffic by IP, add Tekst's outbound IP addresses to your allow list
  • See Troubleshoot Firewall for the full list of IP addresses to whitelist
See more

Business Intelligence

See all articles
Connect a Looker integration

In this guide we will go through the steps to connect to a Looker integration on the Tekst App.

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.

Step 2: Add a Looker Integration

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"

Step 3: Create a user

Create a username that fulfills the below requirements:

  • Contains only lowercase letters.
  • Contains no special characters.
  • Contains at least 6 characters.

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.

Step 4: Connect to the Tekst datasource in Looker

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.

See more
Connect a Power BI integration

In this guide we will go through the steps to connect to a Power BI integration on the Tekst App.

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.

Step 2: Add a Power BI Integration

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"

Step 3: Create a user

Create a username that fulfills the below requirements:

  • Contains only lowercase letters.
  • Contains no special characters.
  • Contains at least 6 characters.

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.

Step 4: Connect to the Tekst datasource in Power BI

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.

See more
Connect a Metabase integration

In this guide we will go through the steps to connect to a Metabase integration on the Tekst App.

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom navigation menu.

Step 2: Add a Metabase Integration

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"

Step 3: Create a user

Create a username that fulfills the below requirements:

  • Contains only lowercase letters.
  • Contains no special characters.
  • Contains at least 6 characters.

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.

Step 4: Connect to the Tekst datasource in Metabase

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.

See more
Connect a Qlik integration

In this guide we will go through the steps to connect to a Qlik integration on the Tekst App. 

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a Qlik Integration

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"

Step 3: Create a user

Create a username that fulfills the below requirements:

  • Contains only lowercase letters.
  • Contains no special characters.
  • Contains at least 6 characters.

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.

Step 4: Connect to the Tekst datasource in Qlik

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.

See more
Connect a Tableau integration

In this guide we will go through the steps to connect to a Tableau integration on the Tekst App. 

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a Tableau Integration

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"

Step 3: Create a user

Create a username that fulfills the below requirements:

  • Contains only lowercase letters.
  • Contains no special characters.
  • Contains at least 6 characters.

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.

Step 4: Connect to the Tekst datasource in Tableau

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.

See more
Data Structure

This guide explains the structure of the Tekst data, which is organized into three main tables: `datasources`, `threads`, and `messages`.

Datasources table

The datasource table contains information about your connected data sources:

Column NameData TypeDescription
idVARCHAR(256)Unique identifier for the integration
nameVARCHAR(256)Name of the integration (usually email address)
typeVARCHAR(256)Type of integration (e.g. outlook, salesforce, ...) 

Threads table

The threads table contains aggregate information about email threads:

Column NameData TypeDescription
integration_idVARCHARUnique identifier linking to datasources.id
thread_idVARCHARUnique identifier for the thread
timeTIMESTAMPTimestamp of the thread
statusVARCHARThread status ('replied' or 'open')
messagesINTEGERNumber of messages in the thread
participantsINTEGERNumber of participants in the thread
first_response_time_secondsREALTime to first response in seconds
model_*VARCHARMultiple columns for each model (e.g., model_topic, model_region)

Messages table

The messages table contains detailed information about individual email messages:

Column NameData TypeDescription
integration_idVARCHARUnique identifier linking to datasources.id
thread_idVARCHARUnique identifier linking to threads.thread_id
message_idVARCHARUnique identifier for the message
timeTIMESTAMPTimestamp of the message
typeVARCHARMessage type ('sent' or 'received')
thread_numberINTEGERSequential number of the message in the thread
receiverVARCHARArray of receiver domain names
senderVARCHARSender domain name
ccVARCHARArray of CC domain names
bccVARCHARArray of BCC domain names
how_receivedVARCHARHow the message was received ('sender', 'receiver', 'cc', 'bcc', or 'unknown')

Important Notes

Relationships

  • `datasources.id` links to `threads.integration_id` and `messages.integration_id`
  • `threads.thread_id` links to `messages.thread_id`

Data Uniqueness

  • Each `thread_id and integration_id pair` appears only once in the threads table (no duplicates)
  • Each `message_id and thread_id and integration_id pair` appears only once in the messages table (no duplicates)

Technical Details

  • The `model_*` columns in the threads table are dynamically created based on your configured facets.
  • Domain names in the messages table are stored in a decrypted format.
  • Arrays (receiver, cc, bcc) are stored as comma-separated lists.
  • All timestamps are in UTC.

For more information about specific columns or data types, please contact our support team.

See more
Supported file types

At this moment Tekst supports the following file types on the ftp integration:

  • pdf
  • jpg
  • jpeg
  • png
  • doc & docx

For other file types please contact your onboarding manager or customer success manager.

See more
Connect a Gmail integration

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. 

Steps to Add More Integrations

  1. Navigate to the Integrations page in your Tekst dashboard.
  2. Find your existing Gmail service account integration and click on it to open the settings panel.
  3. In the settings panel, click on the Settings tab.
  4. Under the "Child Accounts" section, type the email address you want to add in the input field.
  5. Press Enter or click the enter badge to add the email to your integrations list.
  6. You will see the email appear in the list of integrated accounts below the input field.

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.

Verify Your Setup

After adding the email address, you can verify it was properly integrated by:

  • Checking that it appears in the Child Accounts list in the integration settings
  • Navigating to your Dashboard and confirming emails from this address begin appearing

Limitations

  • READER role users cannot add child accounts
  • Service account must have delegation access to any email addresses you add

Troubleshooting

Email does not appear in the list after adding

This is most likely due to an invalid email format. Make sure that you have entered a valid mail address and try again.

Error message appears when adding email

The error message might indicate the email already exists or that the service account lacks access. 

New emails form added addresses do not appear in the dashboard

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.

See more
Connect an Infor M3 integration

This article describes the permissions needed to make the integration between Infor M3 and Tekst work.

Prerequisites

To create the Infor M3 integration, you will need following configurations in Infor M3

  • Service account with API access to Customer, Item, and Order endpoints
  • OAuth 2.0 client credentials (Client ID and Client Secret)
  • SAAK (Service Account Access Key) and SASK (Service Account Secret Key)
  • Base URL for your M3 instance and Token URL for authentication
  • Appropriate permissions for creating and confirming sales orders

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add an Infor M3 Integration

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"

Step 3: Enter your credentials

  1. Enter your credentials in the pop-up
    • Client ID
    • Client Secret
    • SAAK (Service Account Access Key)
    • SASK (Service Account Secret Key)
    • Token URL
    • Base URL
  2. Click Test Connection to verify API access
  3. Click Save when the connection succeeds
See more
Infor M3 Workflow Examples

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.

Automated Email-to-Order Processing

This workflow converts incoming email purchase orders into confirmed M3 sales orders automatically.

Use Case

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.

Workflow Steps

  1. Trigger: New email arrives in monitored inbox (e.g., orders@company.com)
  2. Extract Data: Tekst AI identifies:
    • Customer VAT number or account code
    • Order date and requested delivery date
    • Line items with product codes, descriptions, and quantities
    • Special instructions or notes
  3. Get Customer: Look up customer in M3 using VAT number
    • Input: VAT number from email
    • Output: Customer number (CUNO) for order creation
  4. Validate Items: For each line item, use Get Item action
    • Input: Item number (ITNO) extracted from email
    • Output: Item details and availability confirmation
  5. Create Order: Build M3 sales order
    • Company: "100" (or your company code)
    • Customer: CUNO from step 3
    • Order lines: Array of {ITNO, ORQT, delivery date}
  6. Confirm Order: Update order status to confirmed (20-25)
  7. Send Notification: Email customer with order confirmation and M3 order number (ORNO)

This workflow reduces order processing from 15 minutes to under 30 seconds, delivering instant confirmations to customers.

Configuration Tips

  • Set up error routing: If customer or item lookup fails, route to manual review queue
  • Add date formatting: Ensure extracted dates convert to YYYYMMDD format
  • Handle attachments: Configure AI to extract order data from PDF or Excel attachments
  • Log all orders: Store ORNO and email reference for audit tracking

Customer Validation Before Order Entry

Validate customer information exists in M3 before processing order requests, preventing errors and duplicate work.

Use Case

New customers often send orders before their account is set up in M3. This workflow catches missing customers early and routes requests appropriately.

Workflow Steps

  1. Trigger: Email tagged as "Order Request"
  2. Extract Customer Info: Pull VAT number, company name, or account code
  3. Get Customer: Search M3 for customer record
    • Input: VAT number or customer code
    • Output: Customer details or "not found" error
  4. Conditional Branch:
    • If customer exists: Proceed to order creation workflow
    • If customer not found: Route to sales team with email template: "New customer setup required for [Company Name]. Please create M3 account before processing order."
  5. Track Status: Update CRM or ticketing system with customer validation result

This validation prevents incomplete orders and ensures your team sets up new customers correctly before processing their first order.

Multi-Line Order Processing with Batch Handling

Process orders with multiple line items efficiently, handling high-volume scenarios common in manufacturing.

Use Case

Large distributor receives orders with 20-50 line items. Manual entry is error-prone and time-consuming. This workflow handles complex orders automatically.

Workflow Steps

  1. Trigger: Email with subject containing "BULK ORDER" or attachment with multiple items

  2. 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"}
    ]
    
  3. Validate All Items: Loop through each item with Get Item action

    • Check item exists in M3
    • Verify availability if connected to inventory system
    • Flag items not found for manual review
  4. Get Customer: Look up customer once for entire order

  5. Create Order with All Lines: Build single M3 order with complete line item array

  6. Confirm Order: Update to confirmed status

  7. 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.

Error Handling

  • If any item validation fails, pause workflow and notify team
  • Create partial order with valid items if configured
  • Log all validation failures for review and training improvement

Order Confirmation Notifications

Automatically send professional confirmation emails to customers after M3 order creation, improving customer experience.

Use Case

Customers expect immediate order confirmations with tracking details. This workflow delivers confirmations within seconds of order placement.

Workflow Steps

  1. Trigger: Order successfully confirmed in M3 (status 20-25)

  2. Gather Order Details: Retrieve from previous workflow steps:

    • Order number (ORNO)
    • Customer name and email
    • Line items and quantities
    • Expected delivery date
    • Order total if available
  3. 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.
    
  4. Send Email: Deliver to customer's email address

  5. Log Communication: Record confirmation sent in CRM or M3 notes

Instant confirmations reduce "where's my order?" inquiries and improve customer satisfaction scores.

Exception Routing for Manual Review

Handle edge cases and exceptions gracefully by routing complex orders to human reviewers when automation confidence is low.

Use Case

Some orders contain ambiguous data, special pricing, or unusual requests that require human judgment before processing.

Workflow Steps

  1. Trigger: Email classified as "Order Request"
  2. Extract with Confidence Scoring: Tekst AI assigns confidence scores to extracted data:
    • High confidence (>90%): Customer, items clearly identified
    • Medium confidence (70-90%): Some ambiguity in item codes or quantities
    • Low confidence (<70%): Missing data or unclear intent
  3. Conditional Routing:
    • High confidence: Proceed with automated order creation
    • Medium confidence: Create draft order and flag for quick review
    • Low confidence: Route to sales team inbox with highlighted extraction issues
  4. Manual Override: Sales team can approve, modify, or reject flagged orders
  5. Learning Loop: Feed approved exceptions back to AI training to improve future accuracy

Exception routing ensures automation handles 80-90% of orders fully, while maintaining quality control for complex cases.

Multilingual Order Processing

Process orders from international customers in their native languages, extracting data accurately across 20+ languages.

Use Case

European distributor receives orders in Dutch, French, German, and English. This workflow handles all languages uniformly.

Workflow Steps

  1. Trigger: Email from international inbox
  2. Detect Language: Tekst AI automatically identifies email language
  3. Extract Data: Process order details regardless of language:
    • French: "Quantité: 50, Référence: ABC123"
    • German: "Menge: 50, Artikelnummer: ABC123"
    • Dutch: "Aantal: 50, Artikelnummer: ABC123"
    • All extract to: quantity=50, item=ABC123
  4. Validate in M3: Use language-neutral item codes and customer numbers
  5. Create Order: Process identically to single-language workflow
  6. Respond in Original Language: Send confirmation email in customer's language using templates

Train Tekst on multilingual product catalogs and common phrases in each market to improve extraction accuracy for regional SKU aliases.

Integration with Infor Data Lake

For high-volume operations, connect M3 workflows to Infor Data Lake for real-time data synchronization and analytics.

Use Case

Manufacturing enterprise processes 1,000+ orders daily and needs real-time visibility into order status, inventory, and customer data.

Workflow Enhancement

  1. Enable Data Lake Sync: Configure M3 integration to use Data Lake endpoints
  2. Real-Time Lookups: Customer and item validations query live data instead of cached records
  3. Batch Optimization: Process multiple orders simultaneously with improved performance
  4. Analytics Integration: Export order data to BI tools for process mining and ROI tracking

Best Practices

Testing Workflows

  • Start with test inbox and sample emails before production deployment
  • Use M3 test environment if available to avoid impacting live data
  • Validate all extraction and creation steps with known-good orders
  • Monitor first 50-100 automated orders closely

Training for Accuracy

  • Provide historical emails representing your typical order volume (500-1,000 examples)
  • Include edge cases: rush orders, returns, special pricing, multi-language
  • Update training quarterly as product catalogs and customer base evolve
  • Leverage free workshops (Enterprise plans) for custom terminology training

Monitoring and Optimization

  • Track automation rate (% of orders processed without manual intervention)
  • Monitor average processing time per order (target: <1 minute)
  • Review exception routing patterns to identify training opportunities
  • Measure ROI using time saved × volume × hourly cost
  • Set up alerts for connection failures or high error rates

Customers typically achieve 90%+ automation rates within 6 weeks of deployment with proper training and workflow optimization.

See more
Troubleshooting Infor M3 Integration

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.

Authentication Issues

Invalid Credentials (401 Error)

Error message: "Invalid credentials" or "Authentication failed"

Causes:

  • Incorrect Client ID, Client Secret, SAAK, or SASK
  • Expired service account credentials
  • Mismatched Token URL

Solutions:

  1. Verify all credentials in Settings > Integrations > Infor M3
  2. Regenerate SAAK and SASK from your Infor M3 admin portal
  3. Confirm Token URL matches your M3 instance (typically https://yourcompany.infor.com/oauth/token)
  4. Check that credentials have not expired or been revoked
  5. Click Test Connection to validate the fix

Ensure URLs use HTTPS protocol and do not include trailing slashes, as this causes authentication failures.

M3 System Already Connected (403 Error)

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:

  1. Disconnect the M3 integration from the other organization
  2. Contact Tekst support if you need to migrate the connection
  3. Alternatively, use different M3 credentials for this organization

Missing Credentials

Error message: "Missing credentials" or empty authentication fields

Cause:

Required credential fields were not saved or were cleared during configuration.

Solutions:

  1. Re-enter all six credential fields:
    • Client ID
    • Client Secret
    • SAAK
    • SASK
    • Token URL
    • Base URL
  2. Save the configuration
  3. Test the connection before exiting

Connection Test Failed

Error message: "Connection test failed" or timeout errors

Causes:

  • Network connectivity issues
  • Firewall blocking API requests
  • M3 instance is down or unreachable
  • OAuth token has expired

Solutions:

  1. Verify your M3 instance is accessible (check Base URL in a browser)
  2. Ensure your firewall allows outbound HTTPS requests to the M3 API
  3. Check for M3 system maintenance windows
  4. Re-authenticate by saving credentials again (forces token refresh)
  5. Monitor the integration dashboard for health status updates

OAuth tokens refresh automatically, but manual re-authentication can resolve persistent timeout issues.

Order Creation Errors

Failed to Create Order

Error message: "Failed to create order" or "Order creation returned error"

Causes:

  • Missing required fields (order lines or items)
  • Invalid customer number (CUNO)
  • Incorrect date format
  • Quantities set to zero or negative values

Solutions:

  1. Validate that all required order fields are populated:
    • Company number (CONO, typically "100")
    • Customer number (CUNO from Get Customer action)
    • At least one order line with item number (ITNO) and quantity (ORQT)
  2. Check date formats use YYYYMMDD (e.g., "20250115" for January 15, 2025)
  3. Ensure quantities are positive numbers greater than zero
  4. Use the Get Customer action before Create Order to confirm valid CUNO
  5. Use the Get Item action to validate item numbers exist in M3

Always perform customer and item lookups before order creation to catch validation errors early in the workflow.

Orphaned Order Needs Manual Cleanup

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:

  1. Log into Infor M3 directly
  2. Locate the order by number (ORNO) in the error log
  3. Manually add line items or delete the incomplete order
  4. Review the workflow to identify why line items failed:
    • Invalid item numbers
    • Missing quantities
    • Incorrect data types
  5. Fix the workflow configuration and test with a new order

Orphaned orders remain in status 10 (unconfirmed) and require manual intervention in M3 to complete or cancel.

No Customer Found

Error message: "No customer found" or "Invalid CUNO"

Causes:

  • Customer does not exist in M3
  • Incorrect VAT number or customer code
  • Customer is inactive or archived

Solutions:

  1. Verify the customer exists in M3 using the customer management interface
  2. Check that the VAT number or customer code extracted from the email matches M3 records exactly
  3. Ensure the customer account is active
  4. Add the customer to M3 if they are new
  5. Update your AI training to improve customer data extraction accuracy

Item Validation Failed

Error message: "Item not found" or "Invalid ITNO"

Causes:

  • Item number does not exist in M3 inventory
  • Typo in extracted item number
  • Item is inactive or discontinued

Solutions:

  1. Confirm item numbers in M3 item master data
  2. Check for common extraction errors (e.g., "O" vs "0", "I" vs "1")
  3. Train Tekst AI on your specific SKU formats and aliases
  4. Use the Get Item action to validate before order creation
  5. Update item numbers in M3 or correct the source email data

Training Tekst on your M3-specific item codes and product aliases significantly reduces validation errors.

Order Confirmation Issues

Failed to Confirm Order

Error message: "Failed to confirm order" or "Status update failed"

Causes:

  • Order is missing required data for confirmation
  • Order is already confirmed (status 20-25)
  • Insufficient permissions for status changes

Solutions:

  1. Verify the order was created successfully before attempting confirmation
  2. Check that all required order fields are complete (customer, items, quantities, dates)
  3. Ensure the service account has permission to update order status in M3
  4. Do not attempt to confirm already-confirmed orders (check status first)
  5. Review M3 logs for specific validation failures

Data Extraction Issues

Incorrect Data Extracted from Emails

Symptoms:

  • Wrong customer identified
  • Missing or incorrect line items
  • Quantities or dates extracted incorrectly

Solutions:

  1. Review the AI training data for your M3 workflows
  2. Provide examples of correctly formatted orders to improve extraction
  3. Train Tekst on your company-specific terminology:
    • SKU formats
    • Customer identifiers (VAT, account numbers)
    • Product acronyms
    • Date formats
  4. For multilingual emails, ensure training covers all languages used
  5. Contact support for custom training workshops (included in Enterprise plans)

Initial training on historical email data typically achieves 90%+ accuracy. Custom training further improves industry-specific extraction.

Performance Issues

Slow Order Processing

Symptoms:

  • Orders take longer than expected to process
  • Delays in M3 API responses

Solutions:

  1. Enable batch processing for high-volume order flows
  2. Check M3 system performance and API rate limits
  3. Use Infor Data Lake integration for faster data synchronization in large datasets
  4. Optimize workflows to reduce unnecessary API calls (cache customer/item lookups)
  5. Contact support to review workflow efficiency

Getting Additional Help

If these solutions don't resolve your issue:

  1. Check the activity log in Tekst for detailed error messages
  2. Review M3 system logs for API-specific errors
  3. Contact Tekst support with:
    • Error message and timestamp
    • Order number (ORNO) if applicable
    • Workflow configuration details
  4. For M3-specific issues, consult Infor support or your M3 administrator
See more
Outlook integration setup guide for IT administrators

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.

What you will need to do

Before Tekst can connect to your Outlook environment, the following needs to be completed in your Microsoft 365 tenant:

  1. Register a new application in Azure AD (for example, "Tekst Outlook Integration").
  2. Generate a client secret for the application and save the value immediately, as it is only shown once.
  3. Configure the API permissions the integration requires.
  4. Grant admin consent for your organization.
  5. Create a dedicated service account with an Exchange Online license and MFA disabled.
  6. Assign the service account the permissions required to access the mailboxes that Tekst should process.
  7. Optionally, restrict access to only the relevant mailboxes using an application access policy.

Information Tekst needs from you

Once the steps above are complete, please share the following with your Tekst contact so we can activate the connection:

  • Tenant ID
  • Application (Client) ID
  • Client Secret
  • Service account email address

Treat the client secret as a password and share it through a secure channel.

Step-by-step instructions

1. Register the application and configure permissions

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.ReadWrite
  • Mail.Send
  • User.Read.All

After 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.

2. Create the service account

Create a dedicated user in Microsoft 365 that will be used only by the Tekst integration:

  • Assign an Exchange Online license so the account has a mailbox.
  • Disable MFA for this account, or exclude it from Conditional Access policies that enforce MFA, so that automated access is not blocked.
  • Use a strong password and store it securely.

3. Grant the service account access to the mailboxes

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.

4. Restrict access to specific mailboxes (recommended)

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.

5. Share the connection details with Tekst

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.

What happens next

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.

See more
Slow shared mailboxes – cause and solution

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.

Why does this happen?

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.

Possible causes

  • An oversized Outlook OST cache due to years of stored emails and attachments.
  • Insufficient free disk space on the employee's computer.
  • A slow or unstable internet connection at the office - shared mailboxes require a good connection for real-time synchronization.
  • Outdated hardware: too little RAM or a slow hard drive (HDD instead of SSD).
  • An outdated version of Outlook that synchronizes less efficiently.
  • Multiple shared mailboxes connected to a single Outlook profile at the same time, causing the load to accumulate.

Recommended solutions

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.

Role of Tekst

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.

See more
Scope Service Account Access for Outlook

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.

Prerequisites

  • Administrator access to your Azure environment
  • Exchange Online PowerShell module installed
  • A mail-enabled security group containing the mailboxes Tekst should access

Configure an Application Access Policy

Step 1: Connect to Exchange Online PowerShell

Open PowerShell and connect to Exchange Online:

Connect-ExchangeOnline

For details, see Microsoft's guide on how to connect to Exchange Online PowerShell.

Step 2: Identify the App Client ID and Security Group

You will need the following information:

  • Application (client) ID: b2094c09-0651-49c4-b2c2-ed3b739e2a8c
  • Mail-enabled security group: Create a new mail-enabled security group or use an existing one. Add only the mailboxes that Tekst should be able to access. All other mailboxes in the tenant will be excluded. Note down the group's email address to use as the PolicyScopeGroupId.

Step 3: Create the Application Access Policy

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"

Step 4: Test the Application Access Policy

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.

Troubleshooting

PowerShell Version Errors

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.

Policy Not Taking Effect

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.

Reference

This guide is based on Microsoft's documentation on limiting application permissions to specific mailboxes.

See more
Outlook prerequisites

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:

  • user.read
    • Allows Tekst to verify the connect user mailbox.
  • mailboxsettings.read
    • Allows Tekst to update and access the outlook categories.
  • mail.readwrite
    • These allow Tekst to read and process incoming emails of a mailbox (read part).
    • The write part allows Tekst to add e.g. category labels and put emails in folders.
    • Tekst will NEVER delete emails.
  • mail.send
    • This permission allows Tekst to forward emails if configured to do so.

When also connecting shared inboxes these additional permissions need to be given:

  • mail.readwrite.shared
    • These allow Tekst to read and process incoming emails of a shared mailbox (read part).
    • The write part allows Tekst to add e.g. category labels and put emails in folders.
  • mail.send.shared
    • This permission allows Tekst to forward emails if configured to do so.

This is how this looks during the setup flow

See more
Connect an Outlook integration

This guide will aid you to connect an Outlook integration on the Tekst App to perform certain actions.

Prerequisites

  • user.read, mailboxsettings.read, mail.readwrite, mail.send access
  • Additionally, for shared mailboxes mail.readwrite.shared and mail.send.shared are needed

Go to this article for detailed steps.

These settings allow Tekst to:

  • Verify the connect user mailbox
  • Update and access the Outlook categories
  • Read and process incoming mails, add category labels and put mails in folders
  • Forward mails if configured to do so.

Tekst will never delete emails.

Setup

Step 1: Navigate to Integrations

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a New Integration

To connect a new provider:

  1. Click the Connect Integration button in the top-right corner of the Integrations page
  2. A modal appears showing available providers (e.g., Outlook, Salesforce, SAP, HubSpot, Zendesk)
  3. Select the provider you want to connect by clicking its card

Step 3: Enter Connection Details

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.

Step 4: Authorize Access

Most integrations use OAuth for secure authentication:

  1. After clicking Connect, you're redirected to the provider's authorization page
  2. Log in to your provider account if prompted
  3. Review the permissions Tekst is requesting (e.g., read/write mail, access cases)
  4. Click Authorize or Grant Consent to allow access
  5. You're automatically redirected back to Tekst's setup wizard

Tekst does not store your data. All processing happens in real-time, ensuring GDPR compliance and enterprise security standards.

Step 5: Configure Integration Settings

After authorization, the setup wizard guides you through configuration:

  1. The wizard displays steps in a sidebar (e.g., "Connect Account" → "Configure Settings" → "Review")
  2. A progress bar shows your advancement through the setup process
  3. Complete each step:
    • Connect Account: Verify your authenticated account details
    • Configure Settings: Select objects, folders, or data sources to sync (e.g., which Salesforce cases or Outlook mailboxes to monitor)
    • Review: Confirm your settings before finalizing
  4. Click Next to advance between steps, or click Finish on the final screen to save your configuration

Editing a previous wizard step resets information entered in subsequent steps. A warning modal will appear to confirm this action before proceeding.

Step 6: Start Syncing

Once you click Finish, Tekst initiates the sync process:

  • The integration status updates to Connected (displayed as a green badge in the integrations table)
  • A progress bar shows the initial sync status
  • Optionally, you can enable backfilling to sync historical data

Optional: add shared mailboxes

  1. Click on the existing Outlook integration and go to "Settings"
  2. Go to "Shared Accounts" and add the shared mailboxes you want to add.

 

Troubleshooting

Admin consent failures

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.

Unhealthy or disconnected status

Symptom: Integration shows "Unhealthy" or "Disconnected" despite successful initial setup.

Causes:

  • Access token expired (Microsoft Graph tokens last 60-90 minutes; refresh tokens renew automatically)
  • Webhook subscription failed renewal after 3 attempts
  • Admin revoked permissions in Azure AD

Fix:

  • Click Reconnect in Tekst to re-authenticate and renew tokens
  • Verify service account user still exists in Microsoft 365 (deleted accounts break integration)
  • Check Azure AD audit logs for permission changes

Tekst automatically falls back to polling during token issues, so data sync continues with minor delays.

Note

Without any additional styling, the tags added by Tekst will be grey. This can be customized in your Outlook mailbox. 

  1. Go to "View settings" in the "View" tab.

  2. Navigate to "Account" -> "Categories"

  3. Create categories and assign a color

    Make sure that the category name is the same name as the tags applied by Tekst. 

See more
Connection methods overview

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.

Available connection methods

Direct integrations

Tekst offers native integrations with popular platforms:

  • Zendesk: Connect your Zendesk Support instance to process tickets automatically.
  • Salesforce: Integrate with Salesforce to manage cases and communications.
  • HubSpot: Connect HubSpot to process customer conversations.
  • Outlook / Microsoft 365: Process emails directly from your Outlook mailboxes.

API integration

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.

FTP / SFTP

Upload files in bulk via FTP or SFTP for batch processing of documents and attachments.

Choosing the right method

  • Use direct integrations when your platform is natively supported for the easiest setup.
  • Use the API when you need to integrate with a custom or unsupported platform.
  • Use FTP/SFTP when you need to process large volumes of files in batch.

Getting help

If you need assistance choosing or setting up a connection method, please contact our support team.

See more

Salesforce

See all articles
Connect a Salesforce integration

This guide provides instructions for setting up the configurations to access data from Salesforce and create a Salesforce integration on the Tekst App.

Prerequisites

Tekst Integration User

Follow the following steps to create a Tekst Integration User which is necessary to access the data from Salesforce.

  1. Login to Salesforce with your System administrator account
  2. Navigate to "Users" under "Setup" and click "New User"
  3. Fill in general information and click "Save"
    • 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.

Permission Set

Basic Permission Set

Follow the following steps to set the basic permissions for the Tekst Integration user. 

  1. Login to Salesforce with your System administrator account
  2. Navigate to "Users" under "Setup" and go to "Permission Set". Click "New"
  3. Select Salesforce API integration as license and click "Save"

  1. Go to the object settings of the permission set you just created and look for "Cases"

  1. Click on "Edit" and enable Read Case and Edit Case. Save the settings. 
  2. Go to the Tekst Integration User you just created and click "Edit Assignments"
  3. Add the permission set you just created and click "Save"

Audit Fields

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. 

  1. Go to the system permissions of the permission set you just created
  2. Click on "Edit" and enable Set audit fields upon creation. Save the settings.

 

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".

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a Salesforce Integration

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.

Step 3: Configure connector

  1. Log out of the normal administrator user or use an incognito window browser.

  2. Select the Salesforce environment (Production or Sandbox) and log in as the Tekst Integration User

  3. Read permissions and click "Allow"

The status of the Salesforce integration on the Tekst dashboard should be "connected" now. 

Optional: Add custom fields

Custom fields in the Case object enhance configuration based on your needs.

Common practices include:

  • Create a Topic (Topic_c) for filling in topics.
  • Create Language (Language_c) for specifying language.
  • Create Sentiment (Sentiment_c) for indicating sentiment.

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.

See more
API usage and performance impact

This guide outlines when and how the Salesforce APIs are used to help estimate performance impact.

API usage scenarios

1. Model retraining

Purpose

Periodically retraining customer models using historical case data.

API Used

Salesforce Bulk Query v2 API

  • Asynchronous process with results available after approximately 1 minute
  • One bulk query job per week of historical data
  • Typically processes 6-12 months of data (26-52 bulk query jobs total)
  • Up to 4 concurrent jobs

Frequency

  • Higher during onboarding (multiple times weekly)
  • Lower during full deployment (every few weeks)
  • Can be adjusted based on customer needs

2. Case processing

Purpose

Real-time processing of individual cases.

API used

Standard REST API

  • 1 GET request to fetch a case
  • 1 PATCH request to update multiple fields (e.g., topic, language, sentiment)

Frequency:

  • Example case lifecycle (illustrative):
    • New case event → GET request + PATCH request
    • Case closed event → GET request
  • The actual number of API calls will vary based on your specific implementation and workflow
  • Additional GET requests may occur if you configure update events between case creation and closure

3. Event monitoring

Purpose

Real-time event notification.

API used

Salesforce PubSub API

  • Consumes platform events or Change Data Capture (CDC) events
  • Each event consumed exactly once
  • Implemented with guardrails to minimize consumption

Performance considerations

  • Bulk operations run asynchronously with minimal impact on Salesforce performance
  • Case processing calls are made only on specific events (new, update, closed)
  • PubSub API is designed for efficient real-time communication

This information should help estimate the performance impact of implementing Tekst's intelligent capabilities within Salesforce.

See more
Real-time access

This guide goes over the three methods for real-time access to new or updates Salesforce objects.

Change Data Capture (CDC)

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.

Limitations

  • 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.

Setup

  1. Login as Salesforce Administrator.
  2. Go to "Setup" > "Integrations" > "Change Data Capture".
  3. Select Case Entity (Right Column):
  • Ensure the case is available to the selected entities.
  • Move the case from available entities to selected entities if needed.

Platform Events

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.

Setup

  1. Login as a Salesforce administrator.
  2. Go to "Platform Events" under "Setup" and click "New Platform Event".
  3. Fill in a the requested fields (label, plural label, description). Keep the Publish Behavior on default or 'Publish After Commit'. Save these settings. 
  4. In the Custom Fields & Relationships related list, click "New".
  5. Create a Case_Id_c (id of the case that is updated) field and an Event type ("new" or "update") field. You can add other custom fields by selecting the type and filling in the Label/Name.

All field types that platform events support are:

  • Checkbox
  • Date
  • Date/Time
  • Number
  • Text
  • Text Area (Long)

Publish events

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.

Custom Hook

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. 

Setup

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:

  1. Navigate to "Integrations" under the "Settings" tab. 
  2. Click "Edit" on the Salesforce Integration if you want to add a custom hook.
  3. Click "Create new key".
  4. Click the copy button to copy the key.

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:

Revocation
  1. Navigate to "Integrations" under the "Settings" tab. 
  2. Click "Edit" on the SAP Service Cloud v2 Integration
  3. Navigate to the key you want to delete and click "Revoke"

Hook request

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

}

Comparison

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.

See more
Revoke Salesforce access

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.

Technique 1: General revocation

This method is standard for all integrations, including Salesforce.

  1. Delete integration from Tekst's dashboard:

    • Access the Tekst dashboard.

    • Locate the integration you want to revoke.

    • Delete the integration.

  2. Automated revocation:

    • Once the integration is deleted, access is automatically revoked.

    • All connections are permanently severed.

  3. Contact support:

Technique 2: Salesforce-specific revocation

If you specifically want to revoke access to Salesforce, follow these steps:

  1. Login as a Tekst integration user:

    • Use the credentials of the Tekst Integration User.
  2. Navigate to OAuth connected apps:

    • In the Salesforce setup, search for OAuth-connected apps under the user setup.
  3. 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.

See more
Connect a SAP ECC Integration

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. 

1. Transport Requests (CTS)

Setup

  1. Create a Transport Request: Develop in the source system and include all the objects in a transport request.
  2. Release Transport Request: Once development is complete, release the task and transport request.
  3. Export Files: Export the physical transport files from the source system.
  4. Import Files: A Basis Admin will import those physical files into the target system.
  5. Check Results: Validate in the target system that the objects have been imported and activated.

2. ABAPGit

Setup

  1. Installation on Source System: Install ABAPGit on the source system and import SSL certificates.
  2. Link to Git Repo: Link the SAP Package to an online Git Repository. Make sure all your development is done in a separate package with only relevant objects.
  3. Push to Repo: Once development is done, push all the code to the online Git Repository.
  4. Installation on Target System: Install ABAPGit on the target system and import SSL certificates.
  5. Pull the Repo: Pull the source code from Git to your target system.
  6. Validate Objects: Validate in the target system that the objects have been imported and activated.

3. Manual Creation of Objects

Setup

  1. Development in source system: Complete all the developments in the source system.
  2. Identify all objects: List all the objects that need to be created in the target system.
  3. Copy / Paste: Manually copy and paste the source code/objects from the source to the target system.
  4. Validate Objects: Validate in the target system that the objects have been imported and activated.
 CTSABAPGitManual 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

See more
Required master data for SAP ECC

This guide gives a breakdown of the most commonly needed data types, organized by priority to process sales order IDocs in SAP ECC.

Essential master data (required for all IDocs)

These records must be configured before IDocs can be processed:

  • Company Code – The organizational entity that receives the order
  • Sales Organization – The division responsible for processing the sale
  • Distribution Channel – The route through which products are sold (e.g., direct, wholesale, retail)
  • Sales Division – The product line or business segment
  • Customer – The buyer, including their address, payment terms, and contact details
  • Material – The product being ordered, including pricing and inventory data
  • Plant – The warehouse or manufacturing location from which the order will be fulfilled
  • Sales Document Type – The order category (e.g., standard order, rush order, return)

Conditional master data (depends on your process)

Depending on your business rules and order types, you may also need:

  • Payment Terms – The invoicing and due date schedule for the order
  • Incoterms – International trade terms that define shipping and cost responsibilities (e.g., FOB, CIF)
  • Shipping Type – The mode of delivery (e.g., truck, air, parcel)
  • Storage Location – The specific warehouse bin or section where inventory is stored

Why this matters

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.

Next steps

If IDocs are failing during processing:

  1. Check the IDoc error log to identify which field is causing the rejection
  2. Verify the corresponding master data record exists in SAP (e.g., customer in VD01, material in MM01)
  3. Ensure the record is flagged as active for the relevant sales channel
  4. If the master data is missing, create it or update the IDoc mapping to use alternative identifiers

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.

See more

SAP Service Cloud

See all articles
Set up a technical user for OData in SAP Service Cloud

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.

Overview

Setting up a technical user for OData involves three steps:

  1. Create a Communication System
  2. Create a Communication Arrangement linked to the OData services
  3. Use the credentials to connect on customer.tekst.com

Prerequisites

  • Administrator access to your SAP Service Cloud tenant
  • Knowledge of your SAP tenant host name

Step 1: Create a Communication System

A Communication System represents an external system that will connect to your SAP tenant.

  1. In SAP Service Cloud, open the Administrator menu in the left-hand navigation
  2. Go to General Settings
  3. Under the Integration section, click Communication Systems
  4. Click New to create a new Communication System
  5. Fill in the following fields on the General tab:
    • Host Name: Enter the host name for your SAP tenant (e.g., myXXXXX.crm.ondemand.com)
    • System Access Type: Select Internet
  6. Optionally fill in the Contact Information section with the contact details of the person responsible for this integration (first name, last name, email)
  7. Click Save to create the Communication System

Step 2: Add a System Instance

After saving the Communication System, you need to add a System Instance.

  1. Open the Communication System you just created
  2. Navigate to the System Instances tab
  3. Click Add Row to create a new system instance
  4. Enter a System Instance ID (e.g., the same name as your Communication System)
  5. Click Save

Step 3: Create a Communication Arrangement

A Communication Arrangement links your Communication System to the OData services and defines which data the technical user can access.

  1. On the System Instances tab of your Communication System, select the system instance you created
  2. In the Communication Arrangements section below, you will see available communication scenarios
  3. Locate the OData Services for Business Objects scenario and click to open it
  4. This will create a new Communication Arrangement

Step 4: Configure Authentication

On the Communication Arrangement page, configure the authentication method for the technical user.

  1. Navigate to the Technical Data tab
  2. Under Inbound Communication Basic Settings, configure the following:
    • Authentication Method: Select User ID and Password
    • User ID: A technical user ID is generated automatically (e.g., _TEKSTODATA). Note this user ID - you will need it later.
  3. Click Edit Credentials to set the password for the technical user
  4. Enter and confirm the password. Store it securely - you will need it to configure the integration in Tekst.

Step 5: Select the OData Services

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.

  1. Review the list of OData services and enable the ones that Tekst requires by checking the Assigned checkbox next to each service
  2. At minimum, enable the services related to the objects Tekst needs to read and update. Common services include:
    • activity
    • businesspartner
    • businesspartnerrelationship
    • businessuser
    • contact
    • contactaccount
  3. If you are unsure which services to enable, contact your Tekst customer success team for guidance

Note: You can optionally mark services as Read Only if Tekst should only read data from that particular service without making updates.

Step 6: Activate the Communication Arrangement

  1. After configuring the authentication and selecting the services, click Save and Reactivate in the top-right corner of the Communication Arrangement page
  2. Verify that the status of the Communication Arrangement shows as Active

Step 7: Connect on customer.tekst.com

Now that your technical user is configured in SAP, use its credentials to set up the integration on the Tekst platform.

  1. Log in to your Tekst environment at customer.tekst.com
  2. Navigate to the Integrations page
  3. Click Connect Integration and select SAP Service Cloud
  4. Enter the following details:
    • SAP Tenant URL: Your SAP tenant URL
    • Username: The technical User ID from Step 4 (e.g., _TEKSTODATA)
    • Password: The password you set in Step 4
  5. Click Connect to finalize the integration

Tekst will validate the connection to your SAP instance. Once verified, the integration is active and ready for configuration.

Troubleshooting

  • Connection fails: Verify that the Communication Arrangement status is Active and that the correct OData services are assigned
  • Authentication errors: Double-check the User ID and password. You can reset the password by opening the Communication Arrangement, navigating to the Technical Data tab, and clicking Edit Credentials
  • Missing data: Ensure the required OData services are assigned and not marked as Read Only if Tekst needs write access

Related Articles

See more
Real-time SAP Access: Custom Hook

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 case

Use a custom hook when you want more control over real-time event delivery.

  • Avoid relying on other tools or extensions.
  • Trigger only the update events you care about.
  • Limit which cases are sent to Tekst.

Hook request

Configure SAP Service Cloud to send a POST request to the Tekst hook endpoint.

Request typePOST
URLhttps://hooks.tekst.com/v1/webhook/v1/sapservicecloud/{orgId}/{integrationId}
Payload
{
  "event-type": "{EventType}",
  "event-id": "{EventID}",
  "event-time": "{EventTime}",
  "data": {
    "root-entity-id": "{CaseID}",
    "entity-id": "{EntityID}"
  }
}
Extra payloadYou 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.

See more
Create a SAP Service Cloud integration

This guide goes over the possible ways to connect to SAP Service Cloud on the Tekst App.

Prerequisites

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.

Setup

Step 1: Navigate to Integrations

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a New Integration

To connect a new provider:

  1. Click the Connect Integration button in the top-right corner of the Integrations page
  2. A modal appears showing available providers (e.g., Outlook, Salesforce, SAP, HubSpot, Zendesk)
  3. Select SAP Service Cloud
  4. Fill in your SAP Tenant URL and the username and password.

 

Revoke Access

General revocation

  1. Access the Tekst dashboard.
  2. Locate the integration you want to revoke.
  3. Delete the integration

Once the integration is deleted, access is automatically revoked. All connections are permanently severed.

For general revocation assistance, contact support@tekst.com.

SAP-specific revocation

If you specifically want to revoke access to SAP, follow the steps below:

Note: These steps apply only to integrations using username-password authentication.

  1. Sign in as tenant administrator to the administration console for SAP cloud identity services.
  2. Select the user management tile.
    • 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.

  3. Deactivate user
  • Press the edit icon next to the Personal Information section.
  • Select "Inactive" from the dropdown next to the Status field.

Note: For SAP-specific instructions on revoking user access, refer to the official documentation:
SAP Help – Deactivate Users

See more
SAP possible actions

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.

Default Actions

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.

Custom Actions

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.

See more
SAP Service Cloud API Usage

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.

Real-Time Case Processing Flow

When Tekst processes cases in real-time through SAP Service Cloud, the following sequence of API calls occurs for each case:

1. Case Creation Notification

SAP Service Cloud sends a webhook notification to Tekst when a new case is created. This initial ping triggers the automation workflow.

2. Automation Execution (PATCH Request)

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:

  • Category or subcategory classifications
  • Priority levels
  • Routing or assignment information
  • Custom fields for sentiment, product identification, or other AI predictions
  • Language detection

For a complete list of fields Tekst can update, refer to SAP possible actions and Objects and fields used.

3. Case Closure Notification

When a case is closed in SAP Service Cloud, another webhook notification is sent to Tekst. This signals that the case lifecycle is complete.

4. Feedback Retrieval (GET Request)

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:

  • Compares AI predictions with final agent decisions
  • Identifies correction patterns
  • Feeds data back into the AI training pipeline to improve accuracy

This feedback loop is what enables Tekst models to continuously learn and achieve 90%+ accuracy in routing and classification over time.

API Call Summary per Case

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.

Additional API Operations

  • Bulk Operations for Model Training

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:

  • The number of historical cases being analyzed
  • The date range specified for training data
  • The complexity of your case structure (interactions, attachments, etc.)

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.

  • Message Review via Tekst Platform

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:

  • Users navigate to specific messages or cases
  • Users filter or search through cases
  • Users view prediction details and related case information

These GET requests are minimal and occur only when users actively interact with the platform to review individual cases.

Optimizing API Usage

To optimize API consumption with your SAP Service Cloud integration:

  • Scope your webhooks: Configure SAP Service Cloud Flows to send notifications only for relevant case types or statuses
  • Monitor rate limits: Ensure your SAP API limits can accommodate your expected case volume plus bulk operations
  • Plan training windows: Schedule model training during off-peak hours to minimize impact on real-time operations
  • Use custom hooks: Implement fine-grained webhook triggers to avoid unnecessary notifications

For questions about API usage specific to your implementation or to discuss optimization strategies, contact your Tekst customer success team.

Related Articles

See more
Objects and fields used

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.

ServiceRequest (Ticket) - Core Object

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

ServiceRequestInteraction (Including Emails)

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)

Attachment (optional)

ObjectNameDescription/Reason
AttachmentIDAttachment ID
AttachmentObjectIdInternal identifier
AttachmentParentObjectIDLink to parent (ticket or interaction)
AttachmentNameFile name
AttachmentMimeTypeFile type (PDF, JPEG, etc.)
AttachmentSizeInKbFile size
AttachmentCreationDateTimeUpload timestamp
AttachmentCategoryCodeAttachment category
AttachmentLinkWebURIURL to access attachment

ServiceRequestTextCollection (for internal notes not in interactions)

ObjectNameDescription/Reason
ServiceRequestTextIDText entry ID
ServiceRequestTextParentObjectIDLink to ticket
ServiceRequestTextTypeCodeText type (InternalNote, AdditionalInfo)
ServiceRequestTextTypeCodeTextText type description
ServiceRequestTextTextActual text content
ServiceRequestTextCreationDateTimeWhen text was added
ServiceRequestTextAuthorIDWho created the text
See more

Sharepoint

See all articles
Troubleshooting: SharePoint "Authentication check returned false" Error

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.

Why this happens

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.

How to fix it

In most cases, you can resolve this by re-triggering the Microsoft OAuth flow to refresh your access tokens.

Step 1: Identify the failing site

  1. Navigate to Settings > Integrations.

  2. Locate the SharePoint row. You will likely see a red "Authentication failed" badge.

  3. Click on the row to open the SharePoint settings.

  4. Look through your list of connected sites. Any site causing the failure will typically be highlighted or show a disconnected status.

Step 2: Verify the integration

  1. Verify with which client id and application id the integration was connected.

  2. 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

Still having issues?

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.

See more
Connect a SharePoint integration

This guide outlines the steps to connect to a SharePoint integration on the Tekst App. 

Prerequisites

Your application should have the following permissions:

  • Files.Read.All
  • Sites.Read.All
  • Files.ReadWrite

You can set up these permissions in your app registration under "API permissions".

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a SharePoint Integration

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"

Step 3: Fill in your credentials

Fill in the required credentials of your service account:

  • Client ID 
  • Client Secret
  • Tenant ID

These credentials can be found under App registrations in Microsoft Entra Admin Center. 

Congratulations! You have successfully set up the SharePoint connector on Tekst.

See more
Restrict SharePoint access

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.

Prerequisites

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.

Assign permission to specific SharePoint sites

You can either use CLI for Microsoft 365 or PnP PowerShell to assign permissions. 

Permission Levels

When assigning permissions, you can choose from the following levels:

  • read: Read items in a site collection
  • write: Read and write items in a site collection
  • manage: Read and write items and lists in a site collection
  • fullcontrol: Have full control of a site collection

Select the permission level that best fits the service account's requirements, always following the principle of least privilege.

Using CLI for Microsoft 365

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"

Using PnP PowerShell

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

See more

Tekst Outlook App

See all articles
How to set up the Tekst Outlook App

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.

Prerequisites

  • An active Tekst account with contributor or administrator role.
  • Microsoft Outlook (desktop or web version).

Installation steps

  1. Open Microsoft Outlook and navigate to the Add-ins section.
  2. Search for "Tekst" in the add-in store.
  3. Click "Add" to install the Tekst Outlook App.
  4. Sign in with your Tekst credentials when prompted.

Using the Outlook App

Once installed, the Tekst side panel will appear when viewing emails that are processed by your Tekst automations. From this panel you can:

  • View automation predictions and suggested actions.
  • Approve or reject human approval steps directly within Outlook.
  • Edit variables such as CSV files before approving.

Getting help

If you encounter any issues during setup, please contact our support team for assistance.

See more
Connect a Zendesk integration

This guide will walk you through the process of setting up the Zendesk connector on Tekst.

Setup

Step 1: Navigate to "Integrations".

On the Tekst platform, locate and click on the "Integrations" option. This is typically found in the bottom  navigation menu.

Step 2: Add a Zendesk Integration

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"

Step 3: Fill in Zendesk Domain

Fill in your Zendesk domain and click "Connect". 

screenshot 04.png

Step 4: Log in to Zendesk.

Log in to your Zendesk account and grant access to Tekst. Tekst needs this access to read incoming tickets and add labels.

image 12.jpg

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!

See more
Supported Zendesk Actions

This article describes the supported Zendesk actions and their configuration options.

Add a comment

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.

Label a ticket

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

  1. In Zendesk, go to Admin Center > Objects and rules > Tickets > Fields.

  2. Locate your custom field in the list. The Field ID column shows the identifier you need.

  3. 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.

Tag a ticket

This action adds one or more tags to a ticket.

  • Tags to add: A list of tags to be added to the ticket.

Tags is an (often used) example of a field, hence the small overlap with label a ticket.

Update ticket status

This action updates the status of a Zendesk ticket.

  • Status: The new status of the ticket. Choose from: New, Open, Pending, Hold, Solved, Closed.

Whatsapp message

This action is only available for integrations with Sunshine enabled.

This action sends a message to a WhatsApp conversation.

  • Message: The content of the message to be sent.
See more
Zendesk Sunshine addition

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.

Prerequisites

  • A Zendesk Suite Professional plan or above is required to access the Sunshine Conversations API.
  • Zendesk Agent Workspace must be activated.
  • Additional add-on packs may be required for more Monthly Active Users (MAU) or notifications.

Integration Steps:

Step 1: Set up basic Zendesk integration.

Follow the basic Zendesk integration article to set up a Zendesk connection.

Step 2: Configure Sunshine support.

After setting up the basic Zendesk integration:

  • In the Tekst dashboard, locate your Zendesk integration.
  • Click to open the integration settings.
  • Navigate to the "Channels" tab.

Step 3: Obtain Sunshine Conversations API credentials.

To set up Sunshine support, you'll need to get the necessary API credentials from your Zendesk account:

  • Log in to your Zendesk Admin Center.
  • Click on "Apps and integrations" in the sidebar.
  • Select "APIs > Conversations API".
  • Click "Create API key".
  • Enter an identifying name for the key and click "Next".
  • Copy the App ID, Key ID, and Secret Key. You'll need these for the next step.

Step 4: Enter Sunshine API credentials in Tekst.

In the Channels tab of your Zendesk integration on Tekst:

  • Locate the fields for App ID, API Key ID, and API Secret.
  • Enter the corresponding values you copied from the Zendesk Admin Center.
  • Save your changes.
See more
Create an automated user in Zendesk

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. Create a new customer

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)

2. Share User ID

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/.

See more