Overview
Steps:- Create a bot on the Platform.
- Configure the Web/Mobile Client channel and create a Client JWT App.
- Publish the bot.
- Install Node.js and set up the JWT generation service.
- Create a React application and install the Web SDK.
- Configure and launch the SDK.
Step 1 — Create and Configure the Bot
- Log into the Platform and click New App to create a bot.
- Go to Flows & Channels > Digital > Web/Mobile Client. See Web/Mobile Client channel setup for full details.
- Click JWT App Details > Add. The Create New Client JWT App dialog opens.
-
Enter a name (for example,
My SDK Client App) and select HS256 as the JWT signing algorithm. Click Create. -
Select the newly created app in the Select JWT App dropdown and click Save.
By default, the bot’s Target Audience is Enterprise Users. You can change this to General Public before publishing — it cannot be changed after.
-
Return to Web/Mobile Client > JWT App Details and note:
- Bot Name
- Bot ID
- Client ID
- Client Secret
Step 2 — Publish the Bot
- Go to Deploy > Deploy Management > Publish.
- Select all tasks, click Proceed, enter a comment, and Confirm.
- If your deployment is managed by an Enterprise Admin, ask them to approve the request in the Admin Console under Apps Management > Deployment requests.
Step 3 — Set Up the JWT Server
-
Install Node.js and verify:
- Download and extract the SDKApp JWT server.
-
In
routes/users.js, configure the Client ID and Client Secret from the Web/Mobile Client channel: -
Start the JWT server:
Step 4 — Integrate the Web SDK in React
- Create a React app following the Official React Docs.
-
Install the Kore Web SDK from npm:
-
In
App.jsorpage.tsx, import and configure the SDK: -
Set up the JWT assertion function:
The URL above points to your local JWT server. In production, replace it with your server’s API endpoint.
-
Configure optional SDK settings:
-
Launch the chat window:
-
Start the React app:
-
Open
http://localhost:3000in a browser. The Web SDK chat window loads.
Passing Custom Data
Pass additional user data (phone number, address, etc.) viacustomData:

customData is accessible in the dialog context at lastMessage under BotUserSession. It persists for the user session.
Passing Mapped Identities
UseidentityToMerge in the JWT payload when a user transitions from anonymous to known (for example, after logging in). The Platform merges conversation history under the new identity.
| Scenario | Result |
|---|---|
| Neither identity exists | New identity created; new conversation started |
| New identity exists, merged does not | Conversation started/continued with new identity |
| Merged identity exists, new does not | New identity created; conversation continues; merged identity removed |
| Both exist, new has no active session | Conversation continues with new identity; merged identity removed |
| Both exist, both have active sessions | Merged identity’s conversation continues under new identity; new identity’s active session closed as “Drop-off” |
- Analytics and chat history are updated to associate merged identity sessions with the new identity.
- Billing session tracking updates to the new identity.
Custom Meta Tags
Add session, user, and message-level meta tags from the Web SDK (available since v8.0):Troubleshooting
- Verify that the Client ID and Client Secret in the JWT server match the values from the Web/Mobile Client channel.
- Ensure all required JWT payload fields are included when generating the token.