Jamdesk Documentation logo

Integraciones

Conecta la API de búsqueda de documentación de Jamdesk a Intercom, Zendesk, Slack y chatbots personalizados. Guías paso a paso para cada integración.

La API de búsqueda de documentación está diseñada para integrarse con las herramientas que tu equipo y clientes ya utilizan. Esta guía cubre las integraciones más comunes.

Intercom (Fin AI Agent)

El agente de IA Fin de Intercom admite Conectores de datos: fuentes de búsqueda externas que Fin consulta junto con tus artículos de Intercom. Conecta la API de búsqueda de documentación para que Fin pueda responder preguntas directamente desde tu documentación de Jamdesk.

1
Genera una clave de API

En el dashboard de Jamdesk, ve a Configuración del proyecto → Claves de API y haz clic en Generar clave. Nómbrala "Intercom Fin" y copia la clave jd_live_ (40 caracteres en total).

2
Abre la configuración del agente de IA de Intercom

En Intercom, ve a Agente de IA → Fuentes de datos → Agregar fuente → API.

3
Configura el conector

Introduce los siguientes datos:

CampoValor
URL del endpointhttps://your-project.jamdesk.app/_api/search
MétodoPOST
Encabezado de autenticaciónAuthorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a
Campo de consultaquery
Ruta de resultadosresults[*].content
4
Prueba la conexión

Usa la herramienta de prueba integrada de Intercom para enviar una consulta de ejemplo. Verifica que Fin devuelva fragmentos relevantes de tu documentación.

5
Actívalo para tu bandeja de entrada

Activa el conector de datos en la configuración de Fin. Fin ahora citará tu documentación al responder las preguntas de los clientes.

Fin respeta el campo score, por lo que los resultados con puntuación más alta aparecen primero en sus respuestas. Los fragmentos con una puntuación inferior a 0.7 normalmente no se utilizan.


Zendesk (MCP Server)

Las funciones de IA de Zendesk admiten servidores MCP como fuentes de conocimiento. Usa el servidor MCP integrado de Jamdesk para conectar tu documentación a los agentes de IA de Zendesk sin necesidad de código personalizado.

1
Encuentra la URL de tu servidor MCP

Tu servidor MCP está disponible en https://your-project.jamdesk.app/_jd/mcp. No se requiere clave de API para el servidor MCP; usa la documentación pública de tu proyecto.

2
Agrega el servidor MCP en Zendesk

En el Centro de administración de Zendesk, ve a Agentes de IA → Fuentes de conocimiento → Agregar servidor MCP.

3
Introduce la URL del servidor

Pega la URL de tu servidor MCP: https://your-project.jamdesk.app/_jd/mcp

4
Verifica la conexión

Zendesk listará las herramientas disponibles (searchDocs, getPage). Confirma que ambas herramientas se detecten correctamente y guarda.

El servidor MCP expone el mismo índice de búsqueda que la API de búsqueda de documentación. Usa la API de búsqueda de documentación (con una clave jd_live_) cuando necesites acceso autenticado, limitación de velocidad por clave o control de revocación.


Chatbots personalizados

Agrega búsqueda en la documentación a cualquier chatbot o aplicación web con una llamada estándar fetch. CORS está habilitado, por lo que los clientes basados en navegador pueden llamar a la API directamente sin un proxy de 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("---");
});

Crear una herramienta de agente de IA

Pasa los resultados de búsqueda como contexto a un modelo de lenguaje para generar respuestas fundamentadas:

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 de Slack

Crea un comando de barra /docs en Slack que busque en tu documentación y publique los resultados en cualquier 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");
})();

Define JAMDESK_API_KEY en las variables de entorno de tu aplicación de Slack. Nunca incluyas la clave directamente en el código.


hostAtDocs (Cloudflare Workers)

Si usas hostAtDocs para servir tu documentación en una subruta (p. ej., yoursite.com/docs), la ruta /_api debe ser redirigida a través de tu Cloudflare Worker.

Agrega /_api al array PROXY_PATHS en tu worker:

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

Esto garantiza que las solicitudes de búsqueda a yoursite.com/_api/search se reenvíen a tu sitio de documentación de Jamdesk.

La ruta /_api requiere autenticación mediante tu clave de API jd_live_ independientemente de cómo se enrute la solicitud. Redirigir a través de Cloudflare no omite la autenticación.