Jamdesk Documentation logo

Intégrations

Connectez l'API de recherche Jamdesk Docs à Intercom, Zendesk, Slack et des chatbots personnalisés. Guides étape par étape pour chaque intégration.

L'API de recherche Docs est conçue pour s'intégrer aux outils que votre équipe et vos clients utilisent déjà. Ce guide couvre les intégrations les plus courantes.

Intercom (Agent IA Fin)

L'agent IA Fin d'Intercom prend en charge les Connecteurs de données : des sources de recherche externes que Fin interroge en parallèle de vos articles Intercom. Connectez l'API de recherche Docs pour que Fin puisse répondre aux questions directement depuis votre documentation Jamdesk.

1
Générer une clé API

Dans le dashboard Jamdesk, allez dans Paramètres du projet → Clés API et cliquez sur Générer une clé. Nommez-la "Intercom Fin" et copiez la clé jd_live_ (40 caractères au total).

2
Ouvrir les paramètres de l'agent IA Intercom

Dans Intercom, allez dans Agent IA → Sources de données → Ajouter une source → API.

3
Configurer le connecteur

Saisissez les informations suivantes :

ChampValeur
URL de l'endpointhttps://your-project.jamdesk.app/_api/search
MéthodePOST
En-tête d'authentificationAuthorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a
Champ de requêtequery
Chemin de résultatresults[*].content
4
Tester la connexion

Utilisez l'outil de test intégré d'Intercom pour envoyer une requête exemple. Vérifiez que Fin retourne des passages pertinents de votre documentation.

5
Activer pour votre boîte de réception

Activez le connecteur de données dans votre configuration Fin. Fin citera désormais votre documentation lorsqu'il répondra aux questions des clients.

Fin respecte le champ score, ainsi les résultats avec un score plus élevé 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 (Serveur MCP)

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 votre documentation aux agents IA de Zendesk sans code personnalisé requis.

1
Trouver l'URL de votre serveur MCP

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 la documentation publique de votre projet.

2
Ajouter le serveur MCP dans Zendesk

Dans le Centre d'administration Zendesk, allez dans Agents IA → Sources de connaissances → Ajouter un serveur MCP.

3
Saisir l'URL du serveur

Collez l'URL de votre serveur MCP : https://your-project.jamdesk.app/_jd/mcp

4
Vérifier la connexion

Zendesk listera 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 Docs. Utilisez l'API de recherche 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 dans la documentation à n'importe quel chatbot ou application web avec un appel fetch standard. 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 d'agent IA

Passez les résultats de recherche comme contexte à un modèle de langage pour générer des réponses fondées :

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 Slack /docs 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 votre documentation à un sous-chemin (par exemple votresite.com/docs), la route /_api doit être proxifiée via votre Cloudflare Worker.

Ajoutez /_api au tableau PROXY_PATHS dans votre worker :

const PROXY_PATHS = [
  "/docs",
  "/_jd",
  "/_api",  // Add this line
];

Cela garantit que les requêtes de recherche vers votresite.com/_api/search sont transmises à votre site de documentation Jamdesk.

La route /_api nécessite une authentification via votre clé API jd_live_, quelle que soit la façon dont la requête est routée. La proxification via Cloudflare ne contourne pas l'authentification.