Integraciones Librerias y conectores sin codigo

Integraciones

Librerias oficiales, wrappers de la comunidad y conectores sin codigo para integrar ConvoAI en tu stack — desde un microservicio en Python hasta una automatizacion en Zapier, sin infraestructura adicional requerida.

SDK de Python

Un wrapper ligero y tipado alrededor de la API REST de ConvoAI. Requiere Python 3.9+.

Educación
pip install convoai
Inicializar cliente
from convoai import ConvoAI client = ConvoAI(api_key="ck_live_…") # All resources are available as attributes client.agents # Agents resource client.conversations # Conversations resource client.contacts # Contacts resource client.knowledge # Knowledge Base resource client.messages # Messages resource client.analytics # Analytics resource
Mensajes IA
from convoai import ConvoAI client = ConvoAI(api_key="ck_live_…") # Send a text message to a contact message = client.messages.send( agent_id="ag_01J8X…", to="+15551234567", text="Hi! Your order #4821 has shipped. Track it at track.example.com/4821", ) print(message.id) # msg_01J9…
Conversaciones
from convoai import ConvoAI client = ConvoAI(api_key="ck_live_…") # Paginate through open conversations page = client.conversations.list( agent_id="ag_01J8X…", status="open", limit=50, ) for conv in page.results: print(conv.id, conv.contact.name, conv.last_message_at) # Fetch next page if page.next_cursor: next_page = client.conversations.list( agent_id="ag_01J8X…", cursor=page.next_cursor, )
Conocimiento
from convoai import ConvoAI client = ConvoAI(api_key="ck_live_…") # Upload a text document doc = client.knowledge.create( agent_id="ag_01J8X…", title="Shipping Policy Q2 2026", content="We ship to 45 countries. Standard delivery is 5–7 business days…", metadata={"category": "shipping", "version": "2"}, ) print(f"Document {doc.id} — status: {doc.status}") # indexing | ready # Upload a PDF file with open("returns-policy.pdf", "rb") as f: doc = client.knowledge.create( agent_id="ag_01J8X…", title="Returns Policy", file=f, file_type="pdf", )
Manejar webhooks con el SDK
from convoai import ConvoAI, WebhookSignatureError client = ConvoAI(api_key="ck_live_…") def handle_webhook(raw_body: bytes, sig_header: str): try: event = client.webhooks.construct_event( payload=raw_body, sig_header=sig_header, secret="your-webhook-secret", ) except WebhookSignatureError: return 403 # Invalid signature if event.type == "message.received": print("New message from:", event.data["contact_id"]) elif event.type == "handoff.requested": print("Handoff requested — priority:", event.data["priority"]) notify_human_team(event.data) return 200

SDK de JavaScript / TypeScript

Completamente tipado. Funciona en Node.js 18+ y runtimes edge (Cloudflare Workers, Vercel Edge Functions, Deno). Se proporcionan bundles ESM y CJS.

Educación
npm install @convoai/sdk # or pnpm add @convoai/sdk
Inicializar y enviar un mensaje — TypeScript
import { ConvoAI } from '@convoai/sdk'; const client = new ConvoAI({ apiKey: process.env.CONVOAI_API_KEY }); // Send a text message const message = await client.messages.send({ agentId: 'ag_01J8X…', to: '+15551234567', text: 'Hi! Your order #4821 has shipped.', }); console.log(message.id); // msg_01J9… // Send a template message (outside 24-hour window) const tmpl = await client.messages.send({ agentId: 'ag_01J8X…', to: '+15551234567', template: { name: 'order_shipped', language: 'en_US', components: [ { type: 'body', parameters: [{ type: 'text', text: '4821' }] }, ], }, });
Crear o actualizar un contacto y actualizar la etapa del CRM
import { ConvoAI } from '@convoai/sdk'; const client = new ConvoAI({ apiKey: process.env.CONVOAI_API_KEY }); // Upsert by phone — creates if new, updates if exists const contact = await client.contacts.upsert({ agentId: 'ag_01J8X…', phone: '+15551234567', name: 'Maria Garcia', email: 'maria@example.com', stage: 'qualified', tags: ['vip', 'spanish'], customFields: { plan: 'enterprise', region: 'latam' }, }); console.log(contact.id, contact.created); // con_01J9… false (updated)
Verificar webhooks — Next.js App Router
// app/api/webhooks/convoai/route.ts import { ConvoAI, WebhookSignatureError } from '@convoai/sdk'; import { NextRequest, NextResponse } from 'next/server'; const client = new ConvoAI({ apiKey: process.env.CONVOAI_API_KEY! }); export async function POST(req: NextRequest) { const rawBody = await req.text(); const sig = req.headers.get('x-convoai-signature') ?? ''; let event; try { event = client.webhooks.constructEvent(rawBody, sig, process.env.CONVOAI_WEBHOOK_SECRET!); } catch (err) { if (err instanceof WebhookSignatureError) { return NextResponse.json({ error: 'Invalid signature' }, { status: 403 }); } throw err; } if (event.type === 'handoff.requested') { await notifySlack(event.data); } return NextResponse.json({ received: true }); }

Integraciones

Conecta ConvoAI a mas de 6,000 aplicaciones sin escribir codigo. La aplicacion de ConvoAI en Zapier proporciona triggers para eventos entrantes y acciones para enviar mensajes o actualizar contactos.

1
en ConvoAI

In Zapier, search for "ConvoAI" in the app directory. Click Eliminar cuenta y pega tu clave API de ConvoAI desde el dashboard (Configuracion → Claves API).

2
Elige un trigger o una accion
Triggers (eventos de ConvoAI)
  • Punto de entrada de mensajes
  • Conversaciones
  • Transferencia Solicitada
  • Contactos
  • Conversaciones
Acciones (enviar datos a ConvoAI)
  • Mensajes IA
  • Mensajes de plantilla:
  • Eliminar cuenta
  • Sin documentos de conocimiento
  • Conversaciones
3
Mapea campos y activa tu Zap

Usa el mapeador de campos de Zapier para conectar los datos de ConvoAI a tu aplicacion destino (CRM, hoja de calculo, Slack, etc.). Prueba el paso, luego activa el Zap — se ejecuta automaticamente a partir de ese momento.

Zap popular: Cuando un handoff.requested evento se dispara en ConvoAI, crea una tarjeta en Trello, publica un mensaje en Slack con el resumen de IA y actualiza la etapa del contacto en HubSpot — todo en un solo Zap.

Integraciones

El lienzo visual de Make te permite construir flujos de trabajo avanzados de multiples pasos con ramificaciones, bucles y transformaciones de datos — sin codigo.

1
Agrega el modulo de ConvoAI

In a new or existing Make scenario, click the + button and search for "ConvoAI". Select Observar Eventos Disparadores de palabras clave Mensajes IA (para acciones). Autenticate usando tu clave API.

2
Configura el trigger del webhook

Make genera automaticamente una URL de webhook unica. Copiala, luego registrala en ConvoAI: Configuracion → Webhooks → Nuevo Webhook. Selecciona los eventos que deseas recibir.

3
Construye tu escenario

Encadena modulos adicionales (Google Sheets, Salesforce, Slack, email, HTTP) despues del trigger de ConvoAI. Usa el mapeo de datos de Make para pasar datos de conversacion entre pasos. Activa tu escenario cuando estes listo.

Ejemplo: Usa el modulo HTTP de Make como respaldo (cualquier lenguaje)
// Make HTTP module — send a ConvoAI message from a scenario URL: https://app.convoai.cloud/api/v1/agents/ag_01J8X…/messages/ Method: POST Headers: Authorization: Bearer ck_live_… Content-Type: application/json Body (raw JSON): { "to": "", "type": "text", "text": "Hi , your appointment is confirmed for ." }

Integraciones

n8n es una herramienta de automatizacion de flujos de trabajo autoalojada (o en la nube). Usa el nodo nativo de ConvoAI o el nodo HTTP Request para integrarte con cualquier endpoint de ConvoAI.

1
Ingresa tus credenciales en ConvoAI

En n8n, ve a Credenciales → Nuevo → Header Auth. Establece el nombre como Authorization y el valor como Bearer ck_live_…. Save as "ConvoAI API".

2
Agrega un "Webhook" nodo disparador en n8n

Agregar tarjeta Webhooks node as your workflow trigger. Copy the production webhook URL n8n generates, then register it in ConvoAI (Settings → Webhooks). Set authentication to "Header Auth" and verify the X-ConvoAI-Signature encabezado en un Codigo Seguridad de sesión

3
Llama a la API con el nodo HTTP Request

Agregar tarjeta Solicitudes de Cotización nodo despues de tu trigger o en cualquier parte de tu flujo de trabajo. Selecciona tu credencial de API de ConvoAI, establece el metodo y URL, y usa expresiones de n8n para inyectar datos dinamicos de nodos anteriores.

Nodo Code de n8n — verificar firma HMAC
// Paste into an n8n Code node (JavaScript mode) immediately after the Webhook node const crypto = require('crypto'); const secret = 'your-webhook-secret'; const sigHeader = $input.first().headers['x-convoai-signature'] ?? ''; const rawBody = JSON.stringify($input.first().body); const expected = 'sha256=' + crypto .createHmac('sha256', secret) .update(rawBody) .digest('hex'); if (expected !== sigHeader) { throw new Error('Invalid ConvoAI webhook signature'); } // Pass the body through to the next node return $input.all();

API REST — Cualquier Lenguaje

Sin SDK? No hay problema. Cada funcionalidad de ConvoAI es accesible a traves de HTTP estandar. Aqui hay ejemplos rapidos en lenguajes comunes.

PHP
<?php $ch = curl_init('https://app.convoai.cloud/api/v1/agents/ag_01J8X…/messages/'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ck_live_…', 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode([ 'to' => '+15551234567', 'type' => 'text', 'text' => 'Hello from PHP!', ]), ]); $response = json_decode(curl_exec($ch), true); echo $response['id']; // msg_01J9…
Ruby
require 'net/http' require 'json' uri = URI('https://app.convoai.cloud/api/v1/agents/ag_01J8X…/messages/') req = Net::HTTP::Post.new(uri, { 'Authorization' => 'Bearer ck_live_…', 'Content-Type' => 'application/json', }) req.body = { to: '+15551234567', type: 'text', text: 'Hello from Ruby!' }.to_json res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) } puts JSON.parse(res.body)['id'] # msg_01J9…
Go
package main import ( "bytes"; "encoding/json"; "fmt"; "net/http" ) func main() { body, _ := json.Marshal(map[string]string{ "to": "+15551234567", "type": "text", "text": "Hello from Go!", }) req, _ := http.NewRequest("POST", "https://app.convoai.cloud/api/v1/agents/ag_01J8X…/messages/", bytes.NewBuffer(body)) req.Header.Set("Authorization", "Bearer ck_live_…") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result) fmt.Println(result["id"]) // msg_01J9… }