GETTING STARTED

KnowDesk: The All-in-One AI Customer Support Platform

KnowDesk is more than a knowledge base chatbot - it is a complete AI customer support platform. Connect your docs (Google Docs, PDFs, Notion, Confluence, plain text) and deploy a branded AI widget on any website in minutes. When a conversation needs a human, agents reply from the Live Inbox. When a customer asks about an order, the AI looks it up in Stripe, Shopify, or Paystack. When someone emails support, it becomes a ticket automatically. No engineers. No chatbot training. No rebuilding documentation.

This guide walks you through every feature - from creating your account and connecting your knowledge base, to setting up live agent replies, order lookup, and email inbound. Follow the sections in order for your first setup, or jump to any section using the navigation on the left.

๐Ÿค–
AI answers 24/7
from your docs
๐Ÿ’ฌ
Live Agent Inbox
reply in real time
๐Ÿ›๏ธ
Order Lookup
Stripe ยท Shopify ยท Paystack
โœ‰๏ธ
Email Inbound
auto-tickets from email

Getting Started

Follow these four steps to go from signup to a live widget on your website.

1
Create your account
Go to knowdesk.io/signup and enter your email, password, company name, and website. Choose a plan - you can start with the free trial on any plan. You'll be redirected to Stripe to complete payment, then straight to your dashboard.
2
Connect your knowledge source - Google Docs, Notion, or Confluence
In your dashboard, go to Knowledge Base and click + Add Source. KnowDesk is a chatbot that reads Google Docs, Notion pages, Confluence wikis, PDFs, and Help Center URLs - all directly from their source. Choose your source type, give it a name, and paste the file ID or URL. Click Add Source, then Sync to index it.
3
Configure your widget brand
Go to Widget Config. Set your brand name, colour, welcome message, and tone. The live preview on the right updates instantly as you type. Click Save Changes.
4
Embed on your website
Copy your embed code from the Widget Config page and paste it just before the </body> tag on any page. That's it - your widget is live.
๐Ÿ’ก
Your widget auto-updates whenever you change settings or sync a new source. You never need to update the embed code.

Knowledge Base

The knowledge base is the foundation of your AI support bot. KnowDesk is a knowledge base chatbot - it only answers from what you connect here, never from general internet knowledge. The more structured your content, the more accurate the answers.

CONNECTED SOURCES (3)+ Add Source
๐Ÿ“
Operations SOP
Google Drive ยท 24k chars
SYNCEDโŸณ Sync
๐Ÿ“„
Brand Guidelines
PDF ยท 11k chars
SYNCEDโŸณ Sync
โœ๏ธ
Escalation Playbook
Manual text ยท 6k chars
SYNCEDโŸณ Sync

Supported source types

๐Ÿ“Google Drive (chatbot from Google Docs)
Paste the file ID from a Google Doc URL. KnowDesk reads your Google Docs live - the most popular way to build a chatbot from Google Docs without any training or reformatting.
From: docs.google.com/document/d/FILE_ID_HERE/edit
๐Ÿ“„PDF / URL
Paste any publicly accessible PDF URL or website URL. KnowDesk fetches and indexes the content automatically.
Example: https://yoursite.com/handbook.pdf
โœ๏ธManual Text
Paste SOPs, policies, Q&A pairs, or any text directly. Best for internal playbooks that aren't in a document system.
Supports up to ~50,000 characters per source
๐ŸŽฌVideo / Audio
Upload tutorial videos, product walkthroughs, or audio recordings. KnowDesk automatically transcribes the content and indexes it with timestamps - the AI includes [M:SS] links in answers so users can jump to the exact moment in the video.
MP4, MOV, WebM, MP3, WAV - up to 500 MB per file

Adding a Google Drive source

ADD NEW SOURCE
๐Ÿ“
Google Drive
๐Ÿ“„
PDF URL
๐ŸŒ
Website URL
โœ๏ธ
Manual Text
SOURCE NAME
Operations SOP Q1 2026
FILE ID (from Google Drive URL)
1BxiMVs0XRA5nFMdKvBdBZjgmUUqp...
Add Source โ†’

To connect a Google Doc:

  1. Go to Knowledge Base in your dashboard
  2. Click + Add Source
  3. Select Google Drive
  4. Give the source a descriptive name (e.g. "Operations SOP")
  5. Open your Google Doc and copy the file ID from the URL: docs.google.com/document/d/FILE_ID/edit
  6. Paste the file ID into the field and click Add Source
  7. Click Sync - the source status changes to SYNCED within a few seconds
โš 
Your Google Doc must be shared with the KnowDesk service account email. Find this in Settings โ†’ Google Drive Integration. Set the sharing permission to Viewer.

Syncing sources

Sources don't auto-sync continuously. Click the โŸณ Sync button after editing a document to update what the AI knows. Syncing typically takes 2โ€“10 seconds depending on document size.

Plan limits

PLANKNOWLEDGE SOURCES
Starter1 source
Growth5 sources
EnterpriseUnlimited

Video Knowledge Base

Upload your tutorial videos, product walkthroughs, onboarding recordings, or any audio content and KnowDesk automatically transcribes the content using AssemblyAI. The transcript is indexed with timestamps, so the AI can reference the exact moment where relevant content appears - and users see clickable time links in the widget to jump directly to that point.

๐Ÿ’ก
This is ideal for teams that record Loom demos, internal training videos, YouTube tutorials, or product walkthroughs. Your video becomes a searchable knowledge source in minutes.

How it works

1
Upload your video or audio file
Go to Knowledge Base โ†’ Add Source and select ๐ŸŽฌ Video / Audio. Give the source a descriptive name and choose your file. Supported formats: MP4, MOV, WebM, MKV, MP3, WAV, M4A - up to 500 MB.
2
File uploads directly to secure storage
The file uploads directly from your browser to Supabase Storage (no 4 MB limit). A progress bar shows the upload percentage. Large files (e.g. 200 MB) typically take 30โ€“60 seconds on a standard connection.
3
AssemblyAI transcribes the audio
Once uploaded, KnowDesk sends the file to AssemblyAI for transcription. The source status switches to processing while this runs. Transcription typically takes 1โ€“3 minutes depending on the video length. The dashboard auto-refreshes every 6 seconds and updates the status when done.
4
Timestamped content is indexed
When transcription completes, the transcript is stored as timestamped paragraphs in the format [2:14] Your content here. The source status changes to synced and the AI can immediately answer questions from the video.

Timestamp links in the widget

When the AI answers a question from a video source, it includes the timestamp of the relevant moment - for example: "As shown at [2:14], you connect your account by clicking Settings โ†’ Integrations."

Users see a clickable chip below the answer that reads โ–ถ 2:14. Clicking it opens the video at that exact moment in a new tab. No extra setup needed - this works automatically for any synced video source.

WIDGET ANSWER EXAMPLE
To connect your Stripe account, go to Settings โ†’ Commerce Integrations and paste your Secret Key. As shown at [1:42], you'll see the integration turn green when connected successfully.
๐Ÿ“น Product Walkthrough
โ–ถ 1:42
The โ–ถ chip links to the video at the exact timestamp. Clicking opens the video at that moment.

Setup requirement

โš 
Video transcription requires an AssemblyAI API key. Add ASSEMBLYAI_API_KEY to your environment variables (Vercel โ†’ Project Settings โ†’ Environment Variables). The free AssemblyAI tier gives you 5 hours of transcription/month - enough for extensive testing. Get your key at assemblyai.com.

Supported file formats

FORMATTYPENOTES
MP4 / MOVVideoMost common. Works with screen recordings, Loom exports, YouTube downloads.
WebM / MKVVideoBrowser-recorded video. Works with most recording tools.
MP3 / M4AAudioIdeal for podcast-style onboarding recordings or audio-only walkthroughs.
WAV / OGGAudioUncompressed audio. Large files - use MP3 for smaller uploads.
โ„น
Video sources are synced once at upload time. To update a video source (e.g. you re-recorded the tutorial), delete the existing source and upload the new file. There is no manual Sync button for video sources since the transcript is generated from the original file.

Widget Configuration

The Widget Config page controls everything your users see - brand name, colour, welcome message, tone, and suggested prompts. Changes save immediately and take effect on your live widget without any redeployment.

WIDGET CONFIGURATION
BRAND NAME
AcmeCorp
BRAND COLOUR
#00F5E5 โ—
TONE
Casual
DARK MODE
On
EMBED CODE
<script src="https://knowdesk.io/widget.js" data-key="kd_live_..."></script>

Brand settings

Brand Name
Displayed in the widget header next to your logo. Typically your company name.
Brand Colour
Hex colour code used for the accent line, buttons, and message bubbles. Defaults to #00F5E5.
Logo URL
Optional. A public URL to your logo image. Displayed as a circle avatar in the widget header. Leave blank to use your brand initials.
Welcome Message
The first message your users see when they open the widget. Keep it short and action-oriented.

AI behaviour

Tone - Controls how the AI writes responses:

  • Casual - Clear, direct, and conversational. Sounds like a knowledgeable teammate.
  • Formal - Complete sentences, professional language, structured responses.
  • Technical - Assumes domain knowledge, uses precise terminology.

Suggested Prompts - Up to 4 quick-start buttons shown in the widget before the user types. Enter one per line. Example: "How do I escalate a client issue?" or "What is our refund policy?"

Dark / Light mode

Toggle whether the widget renders in dark or light mode. This affects only the widget appearance - not your dashboard. Choose whichever matches your website's background.

Embed the AI Chat Widget on Your Website

Your embed code is a single script tag. It's the easiest way to embed an AI chat widget on any website - Webflow, WordPress, Shopify, Next.js, or plain HTML. Copy it from Widget Config โ†’ Embed Code and paste it before </body>.

Your embed code (example)
HTML
<script 
  src="https://cdn.knowdesk.io/widget.js" 
  data-key="kd_live_your_api_key_here">
</script>

Where to paste it

Paste the script tag just before the closing </body> tag on every page you want the widget to appear.

Example HTML page
HTML
<!DOCTYPE html>
<html>
  <head>
    <title>Your Website</title>
  </head>
  <body>
    <!-- Your website content -->

    <!-- KnowDesk Widget - paste here -->
    <script 
      src="https://cdn.knowdesk.io/widget.js" 
      data-key="kd_live_your_api_key_here">
    </script>
  </body>
</html>

Works on any platform

โœ“ Webflow
โœ“ Framer
โœ“ WordPress
โœ“ Shopify
โœ“ Next.js
โœ“ HubSpot
โœ“ Wix
โœ“ Squarespace
โœ“ Any HTML site
โ„น
The widget loads asynchronously - it won't affect your page load speed. It only becomes active after the knowledge base is loaded from your Cloudflare Worker.

Analytics

The Analytics page gives you a unified view of all support activity across every channel - AI widget conversations, escalated tickets, live agent replies, and inbound email threads - in one dashboard.

Key metrics

Messages This Week
Total messages sent and received across all conversations in the last 7 days.
Resolution Rate
Percentage of conversations fully resolved by the AI without a human handoff. Higher is better - it means your knowledge base covers what customers ask.
Escalated
Conversations where the AI directed the user to a manager or human, including email inbound tickets.
Conversations
Total unique chat sessions and email threads opened this week across all channels.
Agent Replies
Number of messages your team has sent through the Live Inbox. Tracks how much human intervention is happening alongside the AI.
Email Tickets
Inbound email threads converted to tickets this week. Compare to widget conversations to understand channel preference.

Channel breakdown

The channel breakdown shows how support volume is split between the widget, email inbound, and agent-handled conversations. Use this to understand which channels your customers prefer and where to focus knowledge base improvements.

Conversation history

Every conversation is logged and viewable in full - widget chats, agent replies, and email threads all in one place. Click any row to expand it and read the full exchange. Filter by status (open / resolved / escalated) or by source (widget / email).

๐Ÿ’ก
Use the Unanswered Questions list to identify gaps in your knowledge base. If the AI frequently cannot answer a question, add that topic as a new source. Most teams see their resolution rate climb significantly within a few weeks of this habit.
NEW

Escalation & Ticketing

When the AI can't fully resolve a conversation, KnowDesk automatically escalates it - creating a ticket in your helpdesk provider, populating it with the full conversation, and syncing its status back to your dashboard in real time. No copy-paste, no manual triage.

Escalates to
FD
Freshdesk
Most popular helpdesk
ZD
Zendesk
Enterprise support
IC
Intercom
Conversational support
โœ‰
Email
Any email inbox
โš™
Webhook
Custom integrations

How escalation works

1
User triggers escalation
The user clicks "Talk to a human" in the widget, or the AI detects the conversation needs a human (e.g. complaint, billing dispute, complex issue).
2
Ticket created automatically
KnowDesk calls your configured provider API (Freshdesk, Zendesk, Intercom, email SMTP, or your webhook URL) and creates a ticket. The full conversation transcript is included as the ticket description.
3
AI enriches the ticket
If enabled on your plan, Claude AI generates a concise ticket subject and assigns a priority (low / normal / high / urgent) based on the conversation content - no manual triage.
4
Status syncs back
KnowDesk polls your provider for status updates. When the ticket moves to resolved or closed in Freshdesk/Zendesk/Intercom, your KnowDesk dashboard reflects that status automatically.

Tickets dashboard

All escalated conversations appear in your Tickets dashboard. You can filter by status (open, pending, resolved, closed), date range, and provider. Click any row to read the full conversation transcript and see the AI-generated subject and priority.

OPENPENDINGRESOLVED12 tickets
Can't access my account after password reset
HIGHFDOpen
Request for invoice copy for March 2026
NORMALโœ‰Pending
Widget not loading on Webflow site
NORMALZDResolved

AI-powered ticket enrichment

โœฆ AI ticket subject
Claude AI reads the conversation and writes a concise, descriptive subject line - so your helpdesk team can triage at a glance without opening every ticket.
โœฆ AI priority detection
Claude AI analyses urgency cues (complaint language, billing keywords, account access issues) and assigns low, normal, high, or urgent priority automatically.

Per-widget configuration

On Enterprise plans, each widget can have its own escalation destination. For example, your Sales widget can escalate to Freshdesk while your Support widget escalates to Zendesk. Configure this in Widget Config โ†’ Escalation.

Two-way status sync

KnowDesk automatically polls Freshdesk, Zendesk, and Intercom for ticket status changes and mirrors them in your Tickets dashboard. Click โŸณ Sync Status at any time for an immediate refresh.

Custom webhook

The webhook destination sends a POST request to any URL you configure whenever a ticket is created or updated.

Webhook payload
JSON
{
  "event":       "ticket.created",
  "ticket_id":   "kd_tk_abc123",
  "subject":     "Can't access my account after password reset",
  "priority":    "high",
  "status":      "open",
  "user_name":   "Jane Smith",
  "user_email":  "jane@acmecorp.com",
  "description": "User: I've been locked out...

AI: Let me help...",
  "created_at":  "2026-06-06T12:34:56Z",
  "widget_id":   "wdg_abc123",
  "company_id":  "cmp_xyz456"
}
โ„น
Escalation & Ticketing features are gated by your plan tier. See Billing & Plans for the full feature matrix.
NEW ยท GROWTH & ENTERPRISE

Live Agent Inbox

The Live Agent Inbox lets your team reply to widget conversations in real time, directly from the KnowDesk dashboard. When a conversation is escalated - either because the customer asked to speak to a human, or because the AI could not find an answer - it lands in the Live Inbox and your agents can take over instantly.

Replies appear in the customer's chat widget immediately. No separate live chat tool, no new tab, no copy-pasting between systems.

Live Inbox3Refreshes every 15s
Jane Smith
I need help with my invoice
widget2m ago
support@acme.com
Email from customer
email8m ago
Anonymous
My order hasn't arrived
widget14m ago
Jane Smith ยท widget ยท 2m ago
I need help with my invoice from last month
Hi Jane! I can help with that. Could you share the invoice number?
Type a reply... (Enter to send)

How it works

1
Conversation escalated
The customer clicks 'Talk to a human' or the AI detects it needs human review. The conversation is marked escalated and appears in the Live Inbox.
2
Agent opens the thread
Your agent clicks the conversation in the left panel. The full message history appears on the right, including all prior AI and user messages.
3
Agent replies
The agent types a reply and presses Enter. The reply is delivered to the customer's widget in real time - no page refresh needed.
4
Customer sees it instantly
The reply appears in the widget as a message from 'Agent', clearly distinguished from AI messages. The conversation continues seamlessly.

Refresh rate

The conversation list refreshes automatically every 15 seconds. When you have a conversation open, the message thread refreshes every 6 seconds to pick up new customer messages without you having to do anything.

Sources

The Live Inbox shows conversations from two sources - widget (escalated chat conversations) and email (inbound email tickets). Each conversation shows a source label so your agents can tell at a glance which channel they are handling.

โ„น
Live Agent Inbox is available on Growth and Enterprise plans. Starter accounts see an upgrade prompt instead of the inbox.
NEW ยท GROWTH & ENTERPRISE

Order Lookup - Stripe, Shopify & Paystack

Connect your payment processor or e-commerce store and the AI widget will be able to look up order and payment details directly in the chat. When a customer asks "where is my order?" or "was my payment processed?", the AI queries your connected platform in real time and shares the details - no human needed.

๐Ÿ’ณ
Stripe
Looks up charges, payment intents, and subscriptions by email or charge ID. Ideal for SaaS businesses.
๐Ÿ›๏ธ
Shopify
Looks up orders by customer email or order number. Returns status, fulfilment, tracking info, and line items.
๐ŸŒ
Paystack
Looks up transactions and subscriptions by email or reference. Ideal for businesses serving African markets.

Connecting a platform

  1. Go to Commerce Integrations in your dashboard navigation
  2. Click Connect next to the platform you want to add
  3. Enter your API credentials:
    • Stripe - Secret Key (starts with sk_live_)
    • Shopify - Store domain (e.g. mystore.myshopify.com) + Admin API token
    • Paystack - Secret Key (starts with sk_live_)
  4. Click Save. KnowDesk stores credentials encrypted and uses them for order lookups only.

How order lookup works in the chat

Once connected, the AI automatically detects when a customer is asking about an order or payment. It then:

1
Asks the customer for their email address or order number
2
Queries your connected platform(s) in real time
3
Presents the order details - status, date, amount, items, tracking - directly in the chat
๐Ÿ’ก
You can connect all three platforms simultaneously. The AI will query them all and return results from whichever one matches the customer's identifier.

Security

Your API credentials are stored encrypted in KnowDesk's secure storage. They are never exposed to the customer, logged in conversation history, or returned in any widget response. The lookup happens server-side on your Cloudflare Worker.

โ„น
Order Lookup is available on Growth and Enterprise plans.
NEW ยท GROWTH & ENTERPRISE

Email Inbound - Support Emails as Tickets

Email Inbound automatically converts every email your customers send to your support address into a ticket in the KnowDesk dashboard. The sender gets an instant acknowledgement. Your team handles everything from the Live Inbox. Nothing gets lost.

Email flow
โœ‰๏ธCustomer emails support@yourco.com
โ†’
๐Ÿ“ฌForwarded to KnowDesk inbound address
โ†’
๐ŸŽซTicket created ยท Auto-reply sent ยท Appears in Live Inbox

Your inbound address

Each widget has a unique inbound address in this format:

inbound+{your_widget_api_key}@knowdeskio-workers.com

Find your full inbound address in Settings โ†’ Email Inbound in your dashboard.

Setting up forwarding

Gmail / Google Workspace
Settings โ†’ Forwarding and POP/IMAP โ†’ Add a forwarding address. Enter your KnowDesk inbound address and confirm with the verification code.
Outlook / Microsoft 365
Settings โ†’ Mail โ†’ Forwarding โ†’ Enable forwarding. Paste your KnowDesk inbound address.
Custom domain (DNS)
Add a forwarding rule in your email hosting control panel to route support@ (or any address) to your KnowDesk inbound address.

What happens when an email arrives

โ†’
Ticket created
KnowDesk parses the sender's name, email, and message body and creates a support ticket in your dashboard.
โ†’
Auto-reply sent
The sender immediately receives: "We've received your message and created a support ticket - our team will be in touch shortly."
โ†’
Appears in Live Inbox
The ticket shows up in the Live Inbox with a source label of 'email', alongside any widget escalations.
โ†’
Agent replies
Your team reads the message and replies from the Live Inbox. The reply is sent to the customer's email address.
โ„น
Email Inbound is available on Growth and Enterprise plans. Customers on Starter will see a 403 response if their API key receives an inbound email.

Team Management

Add your colleagues so they can access the dashboard. Each team member gets a role that controls what they can see and do.

Roles

AdminFull access - can edit widget, knowledge sources, team members, and billing.
MemberCan view dashboard and analytics. Cannot change settings or billing.
ViewerRead-only access to conversations and analytics only.

Inviting a team member

  1. Go to Team in your dashboard
  2. Click + Invite Member
  3. Enter their email address and choose their role
  4. Click Send Invite
  5. They receive a magic link by email - clicking it creates their account and gives them access

Billing & Plans

All plans include a 7-day free trial. Toggle between monthly and annual pricing below - annual saves 20%.

MonthlyAnnual save 20%

Managing your subscription

Billing is handled by Stripe. To upgrade, downgrade, or cancel - go to Billing โ†’ Manage Billing. This opens the Stripe customer portal where you can update your plan, payment method, or download invoices.

โ„น
Message counts reset on the 1st of each month. If you exceed your limit before the reset, the widget stops responding until the next cycle or until you upgrade.

Shopify billing

Merchants who install KnowDesk via the Shopify App Store are billed through Shopify's native billing system - not Stripe. Plan selection happens in the Shopify app on first install. To upgrade or cancel, manage app subscriptions directly from your Shopify admin.

Settings

Company info

Update your company name, website, and support email. These are used internally and on invoices.

Google Drive integration

To allow KnowDesk to read your Google Docs, share them with the service account email shown in Settings โ†’ Google Drive Integration. Set the permission to Viewer. You only need to do this once per document.

Widget API key

Your API key is the unique identifier in your embed code. It's safe to have in your website's HTML - it only authorises the widget to load content, not to modify data.

โš 
If you click Regenerate, your existing embed code will stop working. You'll need to update the data-key attribute on every page where the widget is embedded.

Password

Change your password from the Settings page. Enter your new password twice to confirm. You'll remain logged in on your current device.

WordPress & Shopify Plugins

KnowDesk is available as a free installable plugin for WordPress and Shopify. Both plugins embed your widget using your API key - no code changes needed on your site.

WordPress Plugin

The KnowDesk WordPress plugin is available free on the official WordPress Plugin Directory. It works on any WordPress site running version 5.8 or higher, including WooCommerce stores and multisite networks.

WordPress5.8 or higher
PHP7.4 or higher
LicenceGPL v2 or later
MultisiteFully compatible

Installation

1
Install from WordPress.org
In your WordPress admin go to Plugins โ†’ Add New Plugin, search for KnowDesk, click Install Now, then Activate. Alternatively, download the zip from wordpress.org/plugins/knowdesk-widget and upload it via Plugins โ†’ Add New โ†’ Upload Plugin.
2
Open the plugin settings
Go to Settings โ†’ KnowDesk Widget in your WordPress admin. You will see a step-by-step onboarding banner if this is your first setup.
3
Paste your Widget API key
Copy your key from your KnowDesk dashboard at Widget Config โ†’ Embed Code. It starts with kd_live_. Paste it into the Widget API Key field and click Verify key to confirm it is active, then Save settings.
4
Configure display options
Choose which pages to show the widget on (all pages, front page only, posts only, or specific pages), which corner to display it in, and whether it shows to logged-in users, logged-out visitors, or both. Click Save settings.
๐Ÿ’ก
The widget goes live the moment you save. No embed code to paste, no theme file edits needed. The plugin injects the data-key attribute automatically onto the widget script tag.

Display settings reference

Show widget on
All pages and posts ยท Front page only ยท Posts only ยท Pages only
Exclude pages
Comma-separated post/page IDs where the widget will not appear
Widget position
Bottom right (default) ยท Bottom left
Visitor visibility
Logged-out visitors ยท Logged-in users ยท Both
Free on the WordPress Plugin DirectoryDownload WordPress plugin โ†’

Shopify App

The KnowDesk Shopify app embeds your widget on your storefront using a Theme App Extension - the modern Shopify standard that does not use the deprecated script_tags API. It is fully compliant with Shopify App Store review requirements.

Install methodShopify App Store
AuthOAuth 2.0 via Shopify
Admin UIEmbedded in Shopify admin
Widget injectionTheme App Extension

Installation

1
Install from the Shopify App Store
Search for KnowDesk in the Shopify App Store and click Install. You will be walked through Shopify's standard OAuth permission screen - the app only requires read_themes scope.
2
Paste your Widget API key
After installing, you land on the KnowDesk settings screen inside your Shopify admin. Paste your Widget API key (starting with kd_live_) from your KnowDesk dashboard. Click Verify key then Save settings.
3
Enable the widget in your Theme Editor
Go to Online Store โ†’ Themes โ†’ Customize. In the left panel click App embeds and toggle KnowDesk Widget on. Choose your widget position (bottom-right or bottom-left) and save. The widget appears on your storefront immediately.
โ„น
The Shopify app passes your API key via a data-key attribute directly on the script tag - it is never stored in theme files or exposed in your storefront HTML beyond what is needed to initialise the widget.
๐Ÿ’ก
The Shopify app uses the App Bridge session token system. Your API key is validated server-to-server from the app backend - it never passes through the browser during the verification step.
INTEGRATION PARTNERS

Partner Integration API

The KnowDesk Partner Integration API allows platforms - such as Freshdesk, Zendesk, Intercom, help desk tools, and app marketplaces - to track customer installs and payments and automatically earn revenue share commission. This API is for Integration Partners who list KnowDesk in their marketplace or plugin directory.

โ„น
Not an integration partner yet? Apply here. Once approved you will receive a unique api_key and webhook_secret from the KnowDesk admin team.

How it works

The integration flow has three stages:

1
Install event
When a user installs KnowDesk from your marketplace, you send an install event to the KnowDesk API. We record the attribution.
2
Payment event
When that customer makes a payment to KnowDesk (monthly subscription), you send a payment event. We calculate and record your commission automatically.
3
Uninstall event
When a customer removes KnowDesk from your platform, you send an uninstall event. Commission stops generating from that point.

Authentication

All API requests must include your API key in the X-Api-Key header. Your API key is available in the KnowDesk admin panel under Partners โ†’ Integration Apps.

FIELDTYPEREQUIREDDESCRIPTION
X-Api-KeystringYesYour unique integration API key. Prefixed kd_int_live_ for production.
X-Webhook-SignaturestringNoHMAC-SHA256 signature of the raw request body. Recommended for security.
Content-TypestringYesMust be application/json
Example request headers
HTTP
POST /api/integrations/freshdesk/track HTTP/1.1
Host: knowdesk.io
X-Api-Key: kd_int_live_a1b2c3d4e5f6g7h8i9j0
X-Webhook-Signature: sha256=3a5b8c...
Content-Type: application/json

Signing requests (recommended)

For added security, sign each request body with your webhook_secret using HMAC-SHA256 and include the result in the X-Webhook-Signature header. KnowDesk verifies this signature before processing.

Signing example
Node.js
const crypto = require('crypto');

function signPayload(body, secret) {
  return 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(JSON.stringify(body))
    .digest('hex');
}

const payload   = { event: 'install', external_account_id: 'fd_acct_123' };
const signature = signPayload(payload, process.env.KD_WEBHOOK_SECRET);

// Include in request:
// X-Webhook-Signature: sha256=3a5b8c9d...

Base URL

https://knowdesk.io/api/integrations/{your-app-slug}/track

Replace {your-app-slug} with the slug assigned to your integration (e.g. freshdesk, zendesk, intercom). Your slug is shown in the KnowDesk admin panel.

Event: install

Send this event when a user in your platform installs or activates KnowDesk. This creates the attribution record that ties future payments to your integration.

POST/api/integrations/{slug}/track
FIELDTYPEREQUIREDDESCRIPTION
eventstringYesMust be "install"
external_account_idstringYesYour platform's unique identifier for this customer account. Stable across sessions.
external_emailstringNoThe customer's email address. Used to match with their KnowDesk account if company_id is unavailable.
company_idstringNoThe KnowDesk company UUID, if known. Provides the most reliable attribution - skip if not available.
Install - request body
JSON
{
  "event": "install",
  "external_account_id": "fd_acct_abc123",
  "external_email": "owner@acmecorp.com",
  "company_id": null
}
Install - success response 200 OK
JSON
{
  "ok": true,
  "event": "install_recorded"
}
Install - error responses
JSON
// 401 - Invalid or missing API key
{
  "error": "Invalid API key or app not found"
}

// 401 - Signature mismatch
{
  "error": "Invalid webhook signature"
}

// 500 - Database error
{
  "error": "Internal error - please retry"
}

Event: payment

Send this event whenever the attributed customer makes a successful payment to KnowDesk. KnowDesk calculates your commission automatically based on the amount_cents and the commission percentage configured for your integration in the admin panel.

๐Ÿ’ก
You can hook this into your existing Stripe webhook - listen for invoice.payment_succeeded or charge.succeeded events from KnowDesk's Stripe account and forward the relevant fields.
POST/api/integrations/{slug}/track
FIELDTYPEREQUIREDDESCRIPTION
eventstringYesMust be "payment"
external_account_idstringYesSame identifier used in the install event.
amount_centsintegerYesThe payment amount in cents (e.g. 4900 for $49.00). Used to calculate your commission.
invoice_idstringNoThe Stripe invoice ID from the payment. Used for audit trail and duplicate prevention.
planstringNoOptional plan name - "starter", "growth", or "enterprise".
Payment - request body
JSON
{
  "event": "payment",
  "external_account_id": "fd_acct_abc123",
  "amount_cents": 14900,
  "invoice_id": "in_1Abc2DefGhi3Jkl",
  "plan": "growth"
}
Payment - success response 200 OK
JSON
{
  "ok": true,
  "event": "payment_recorded"
}

Behind the scenes, KnowDesk:

  1. Finds the integration_installs row for this external_account_id
  2. Calculates your commission: amount_cents ร— (commission_pct / 100)
  3. Creates a partner_earnings record with status: "pending"
  4. Updates the integration app's revenue_shared_cents total
  5. After 7 days the earning is confirmed and included in your next monthly payout

Event: uninstall

Send this event when a customer removes or deactivates KnowDesk from your platform. Commission generation stops from this point. The customer's existing confirmed earnings are not affected.

POST/api/integrations/{slug}/track
FIELDTYPEREQUIREDDESCRIPTION
eventstringYesMust be "uninstall"
external_account_idstringYesThe same account ID used at install time.
Uninstall - request body
JSON
{
  "event": "uninstall",
  "external_account_id": "fd_acct_abc123"
}
Uninstall - success response 200 OK
JSON
{
  "ok": true,
  "event": "uninstall_recorded"
}

Commission calculation

Your commission percentage is configured by the KnowDesk admin team when your integration is approved. The default for Integration Partners is 20%. This can be adjusted by the KnowDesk team at any time from the admin panel.

Example commission calculation:
Customer pays$149.00/month (Growth plan)
Your commission rate20%
Commission this payment$29.80
Status after 7 daysConfirmed โ†’ included in next monthly payout

Viewing your earnings

All commission records are visible in your integration's revenue dashboard in the KnowDesk admin panel under Partners โ†’ Integration Apps โ†’ [Your App] โ†’ Revenue. You can also query earnings programmatically:

GET/api/integrations/{slug}/earnings
Earnings query - request
HTTP
GET /api/integrations/freshdesk/earnings?from=2025-01-01&to=2025-12-31
X-Api-Key: kd_int_live_a1b2c3d4e5f6g7h8i9j0
Earnings query - response 200 OK
JSON
{
  "app": "freshdesk",
  "period": {
    "from": "2025-01-01",
    "to":   "2025-12-31"
  },
  "install_count":        42,
  "total_revenue_cents":  328500,
  "total_commission_cents": 65700,
  "commission_pct":       20,
  "status_breakdown": {
    "pending":   12300,
    "confirmed": 18400,
    "paid":      35000
  },
  "recent_earnings": [
    {
      "id":             "pe_abc123",
      "amount_cents":   2980,
      "commission_pct": 20,
      "mrr_cents":      14900,
      "status":         "confirmed",
      "period_start":   "2025-05-01",
      "created_at":     "2025-05-03T14:22:11Z"
    }
  ]
}

Payout schedule

Earnings follow this lifecycle:

Payment received - Earning recorded with status pending
Day 7 - Earning moves to confirmed if no chargeback
1st of next month - All confirmed earnings are batched and paid out
Minimum threshold - $50 USD. Earnings below this roll over to the following month
Payout methods - Bank transfer, PayPal, or Stripe - configured in your partner settings

Error reference

STATUSERRORCAUSE
400Missing API keyX-Api-Key header not included
400Unknown event typeevent must be "install", "payment", or "uninstall"
401Invalid API key or app not foundAPI key does not match or the app is inactive
401Invalid webhook signatureX-Webhook-Signature does not match computed HMAC
404Install not foundpayment event sent for an external_account_id with no prior install event
429Rate limitedMore than 100 requests per minute from the same API key
500Internal errorTransient server error - safe to retry after 5 seconds

Full integration example

Below is a complete Node.js example showing the full install โ†’ payment โ†’ uninstall flow using the KnowDesk Partner Integration API.

Complete integration flow - Node.js
Node.js
const crypto  = require('crypto');
const fetch   = require('node-fetch'); // or native fetch in Node 18+

const API_KEY    = process.env.KD_API_KEY;           // kd_int_live_...
const WH_SECRET  = process.env.KD_WEBHOOK_SECRET;
const BASE_URL   = 'https://knowdesk.io/api/integrations/your-slug/track';

function sign(body) {
  return 'sha256=' + crypto
    .createHmac('sha256', WH_SECRET)
    .update(JSON.stringify(body))
    .digest('hex');
}

async function track(payload) {
  const res = await fetch(BASE_URL, {
    method:  'POST',
    headers: {
      'Content-Type':       'application/json',
      'X-Api-Key':          API_KEY,
      'X-Webhook-Signature': sign(payload),
    },
    body: JSON.stringify(payload),
  });
  const data = await res.json();
  if (!res.ok) throw new Error(data.error || 'KnowDesk API error');
  return data;
}

// 1. Customer installs KnowDesk from your marketplace
await track({
  event:               'install',
  external_account_id: 'acct_abc123',
  external_email:      'owner@customer.com',
});

// 2. Customer's subscription payment succeeds (hook into Stripe webhook)
await track({
  event:               'payment',
  external_account_id: 'acct_abc123',
  amount_cents:        14900,        // $149.00
  invoice_id:          'in_stripe_invoice_id',
  plan:                'growth',
});

// 3. Customer uninstalls
await track({
  event:               'uninstall',
  external_account_id: 'acct_abc123',
});
โš 
Always send the install event before any payment events for a given account. Sending a payment for an unrecognised external_account_id returns a 404 and the commission is not recorded.

Testing your integration

Use the test API key (prefixed kd_int_test_) during development. Test events are processed identically to production but do not create real commission records. Your test API key is available alongside your live key in the KnowDesk admin panel.

Test environment base URL
TEXT
https://knowdesk.io/api/integrations/your-slug/track
X-Api-Key: kd_int_test_a1b2c3d4e5f6g7h8i9j0
๐Ÿ’ก
Test events appear in the integration panel under a separate Test Events tab. You can replay, inspect, and clear test events without affecting live data.
Ready to integrate?

Apply to the Integration Partner programme. Once approved (within 48 hours) you will receive your api_key, webhook_secret, and integration slug - everything you need to start tracking installs and earning 20% recurring commission on every paying customer.

Apply as Integration Partner โ†’

Frequently Asked Questions

Ready to go live?
AI answers 24/7 ยท live agent inbox ยท video knowledge base ยท Stripe & Shopify order lookup ยท email inbound - all in one platform, live in under 2 minutes.