Intégrations
Connectez l'API de recherche des Docs Jamdesk à Intercom, Zendesk, Slack ou un chatbot personnalisé grâce à ce guide d'intégration détaillé.
Ce guide explique comment connecter l'API de recherche des Docs aux outils les plus courants : Intercom, Zendesk, Slack et des chatbots personnalisés.
Intercom (Fin AI Agent)
Le Fin AI Agent d'Intercom prend en charge les Data Connectors : des sources de recherche externes que Fin interroge en complément de vos articles Intercom. Connectez l'API de recherche des Docs pour que Fin puisse répondre aux questions directement à partir de vos docs Jamdesk.
Dans le dashboard Jamdesk, allez dans Project Settings → API Keys et cliquez sur Generate Key. Nommez-la « Intercom Fin » et copiez la clé jd_live_ (40 caractères au total).
Dans Intercom, allez dans AI Agent → Data Sources → Add Source → API.
Saisissez les informations suivantes :
| Champ | Valeur |
|---|---|
| Endpoint URL | https://your-project.jamdesk.app/_api/search |
| Method | POST |
| Auth header | Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a |
| Query field | query |
| Result path | results[*].content |
Utilisez l'outil de test intégré d'Intercom pour envoyer une requête d'exemple. Vérifiez que Fin renvoie des passages pertinents de vos docs.
Activez le data connector dans votre configuration Fin. Fin citera désormais votre documentation lorsqu'il répondra aux questions des clients.
Fin respecte le champ score, donc les résultats les mieux notés apparaissent en premier dans ses réponses. Les passages avec un score inférieur à 0.7 ne sont généralement pas utilisés.
Zendesk (MCP Server)
Les fonctionnalités IA de Zendesk prennent en charge les serveurs MCP comme sources de connaissances. Utilisez le serveur MCP intégré de Jamdesk pour connecter vos docs aux agents IA de Zendesk sans code personnalisé.
Votre serveur MCP est disponible à l'adresse https://your-project.jamdesk.app/_jd/mcp. Aucune clé API n'est requise pour le serveur MCP ; il utilise les docs publiques de votre projet.
Dans le Zendesk Admin Center, allez dans AI Agents → Knowledge Sources → Add MCP Server.
Collez l'URL de votre serveur MCP : https://your-project.jamdesk.app/_jd/mcp
Zendesk affichera les outils disponibles (searchDocs, getPage). Confirmez que les deux outils sont détectés, puis enregistrez.
Le serveur MCP expose le même index de recherche que l'API de recherche des Docs. Utilisez l'API de recherche des Docs (avec une clé jd_live_) lorsque vous avez besoin d'un accès authentifié, d'une limitation de débit par clé, ou d'un contrôle de révocation.
Chatbots personnalisés
Ajoutez la recherche documentaire à n'importe quel chatbot ou application web avec un simple appel fetch. CORS est activé, donc les clients basés sur navigateur peuvent appeler l'API directement sans proxy backend.
async function searchDocs(query) {
const response = await fetch(
"https://your-project.jamdesk.app/_api/search",
{
method: "POST",
headers: {
"Authorization": "Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a",
"Content-Type": "application/json",
},
body: JSON.stringify({ query, limit: 5 }),
}
);
if (!response.ok) {
const { error } = await response.json();
throw new Error(error);
}
const data = await response.json();
return data.results;
}
// Example usage
const results = await searchDocs("How do I configure a custom domain?");
results.forEach((result) => {
console.log(`[${result.score.toFixed(2)}] ${result.title}`);
console.log(result.content);
console.log(result.url);
console.log("---");
});
Créer un outil AI Agent
Passez les résultats de recherche en contexte à un modèle de langage pour générer des réponses ancrées dans les faits :
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function answerFromDocs(userQuestion) {
// 1. Search your docs
const results = await searchDocs(userQuestion);
const context = results
.map((r) => `[${r.title}](${r.url})\n${r.content}`)
.join("\n\n---\n\n");
// 2. Pass context to Claude
const message = await client.messages.create({
model: "claude-sonnet-4-5-20241022",
max_tokens: 1024,
messages: [
{
role: "user",
content: `Answer the following question using only the provided documentation excerpts.
If the answer isn't in the docs, say so.
Documentation:
${context}
Question: ${userQuestion}`,
},
],
});
return message.content[0].text;
}
Bots Slack
Créez une commande slash /docs pour Slack qui recherche dans votre documentation et publie les résultats dans n'importe quel canal.
import { App } from "@slack/bolt";
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
});
app.command("/docs", async ({ command, ack, respond }) => {
await ack();
const query = command.text.trim();
if (!query) {
await respond("Usage: `/docs <your question>`");
return;
}
try {
const response = await fetch(
"https://your-project.jamdesk.app/_api/search",
{
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.JAMDESK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query, limit: 3 }),
}
);
const data = await response.json();
if (data.results.length === 0) {
await respond(`No results found for: _${query}_`);
return;
}
const blocks = [
{
type: "section",
text: {
type: "mrkdwn",
text: `*Results for:* _${query}_`,
},
},
{ type: "divider" },
...data.results.flatMap((result) => [
{
type: "section",
text: {
type: "mrkdwn",
text: `*<${result.url}|${result.title}>*\n${result.content}`,
},
},
{ type: "divider" },
]),
];
await respond({ blocks });
} catch (err) {
await respond(`Error searching docs: ${err.message}`);
}
});
(async () => {
await app.start(process.env.PORT || 3000);
console.log("Slack bot is running");
})();
Définissez JAMDESK_API_KEY dans les variables d'environnement de votre application Slack. Ne codez jamais la clé en dur.
hostAtDocs (Cloudflare Worker)
Si vous utilisez hostAtDocs pour servir vos docs sur un sous-chemin (ex. yoursite.com/docs), la route /_api doit être transmise via votre Cloudflare Worker.
Ajoutez /_api au tableau PROXY_PATHS de votre worker :
const PROXY_PATHS = [
"/docs",
"/_jd",
"/_api", // Add this line
];
Cela garantit que les requêtes de recherche vers yoursite.com/_api/search sont transmises à votre site de docs Jamdesk.
La route /_api nécessite une authentification via votre clé API jd_live_ quelle que soit la manière dont la requête est routée. Le passage par Cloudflare ne contourne pas l'authentification.
