Conecta SpaceKru con Zapier, Make y n8n

Zapier, Make y n8n conectan SpaceKru con miles de apps mediante sus herramientas de webhook y HTTP. Enviar datos HACIA SpaceKru es cuestión de clics; recibir eventos de SpaceKru necesita una solicitud extra, que esta guía te da lista para copiar.

La API de SpaceKru (v1.1) es una API REST/JSON disponible en todos los planes de pago de SpaceKru. Sincroniza leads en ambos sentidos (upsert por external_id), añade leads a campañas, crea y mueve deals y pide seguimientos a los Empleados de IA, gestiona productos, cotizaciones, órdenes, pagos y reservas, permite que tu plataforma converse con tu Empleado de IA de Customer Service y envía webhooks firmados para 16 eventos que dicen quién causó cada cambio. URL base: https://app.spacekru.com/api/public/v1. Autenticación: llave de API Bearer (sk_live_…). Documentación: https://www.spacekru.com/es/developers. OpenAPI 3.1: https://app.spacekru.com/api/public/v1/openapi.json.

Read in English

Antes de empezar

  • Una cuenta de SpaceKru en un plan de pago (sirve la prueba gratuita de 7 días).
  • Una llave de API de Lectura y escritura, creada por el dueño de la cuenta en Integraciones → API y Webhooks. Ponle el nombre de la herramienta ("Zapier", "Make", "n8n").
  • La URL base de la API: https://app.spacekru.com/api/public/v1.

Dos direcciones

DirecciónEjemploCómo
Hacia SpaceKruRespuesta de formulario → lead en SpaceKruUn paso HTTP de tu herramienta llama POST /leads con tu llave. Sin código.
Desde SpaceKruLead nuevo en SpaceKru → fila en Google SheetsTu herramienta te da una URL de webhook; la registras una vez con POST /subscriptions; SpaceKru la llama en cada evento.

Zapier

Envía leads a SpaceKru

  1. Disparador. Elige la app de donde vienen los leads (Typeform, Google Forms, Facebook Lead Ads, Shopify, una hoja de cálculo…).
  2. Acción: Webhooks by Zapier → POST. URL: https://app.spacekru.com/api/public/v1/leads. Payload Type: json. Headers: Authorization → Bearer sk_live_… (tu llave).
  3. Data. Una fila por campo: full_name, work_email, work_phone, company_name, city, country, tags… Se necesita al menos un correo, teléfono o perfil social. Los campos sin mapear o vacíos se ignoran.
  4. Prueba. Una respuesta 201 significa que el lead se creó. 409 DUPLICATE_RESOURCE significa que ya existía (la respuesta trae su existing_id).

Nombres de campos y límites: Crear un lead. tags puede ser un texto separado por comas como zapier, webinar.

Reacciona a eventos de SpaceKru

  1. Disparador: Webhooks by Zapier → Catch Hook. Copia la URL que te da Zapier (https://hooks.zapier.com/hooks/catch/…).
  2. Registra la URL una vez. Ejecuta esta solicitud una vez, cambiando la URL y eligiendo el evento (lead.created, lead.updated, deal.created, deal.stage_changed, deal.updated, quote.created, quote.status_changed, order.created, order.status_changed, campaign_lead.replied, campaign_lead.form_submitted, product.created, product.updated, booking.created, booking.updated, conversation.message_created). Usa una terminal, cualquier herramienta HTTP (Postman, Insomnia) o un Zap temporal con un paso Webhooks by Zapier → POST. Guarda el secret de la respuesta.
    curl
    curl -X POST "https://app.spacekru.com/api/public/v1/subscriptions" \
      -H "Authorization: Bearer $SPACEKRU_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "event_type": "lead.created",
      "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/"
    }'
    Node.js
    const res = await fetch('https://app.spacekru.com/api/public/v1/subscriptions', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.SPACEKRU_API_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        "event_type": "lead.created",
        "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/"
      }),
    });
    const body = await res.json();
    if (!res.ok) {
      // Branch on body.error.code; quote body.error.request_id to support.
      throw new Error(`${body.error.code}: ${body.error.message} (request ${body.error.request_id})`);
    }
    console.log(body);
    Python
    import os
    
    import requests
    
    r = requests.post(
        "https://app.spacekru.com/api/public/v1/subscriptions",
        headers={
            "Authorization": f"Bearer {os.environ['SPACEKRU_API_KEY']}",
        },
        json={
            "event_type": "lead.created",
            "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/",
        },
        timeout=30,
    )
    body = r.json()
    if not r.ok:
        # Branch on body["error"]["code"]; quote body["error"]["request_id"] to support.
        raise RuntimeError(f"{body['error']['code']}: {body['error']['message']} (request {body['error']['request_id']})")
    print(body)
  3. Envía una muestra. Haz que el evento ocurra en SpaceKru (para lead.created, crea un lead). Zapier lo recibe y muestra cada campo: event, data.full_name, triggered_by, changes…
  4. Arma el resto del Zap. Añade tus acciones (Google Sheets, Slack, HubSpot, Gmail…) y publica.

Make

Envía leads a SpaceKru

  1. Módulo: HTTP → Make a request. URL: https://app.spacekru.com/api/public/v1/leads. Method: POST. Headers: Authorization = Bearer sk_live_….
  2. Body. Body type: Raw. Content type: JSON (application/json). Request content: el JSON del lead mapeando los campos de tu disparador, por ejemplo {"full_name": "{{1.name}}", "work_email": "{{1.email}}", "tags": ["make"]}.
  3. Parse response. Activa Parse response para usar el id del lead nuevo en los módulos siguientes.

Reacciona a eventos de SpaceKru

  1. Añade Webhooks → Custom webhook como primer módulo y copia su dirección (https://hook.<region>.make.com/…).
  2. Registra la dirección una vez con la solicitud anterior (POST /subscriptions).
  3. Haz que el evento ocurra en SpaceKru para que Make aprenda la estructura de datos, y añade tus módulos.

n8n

Envía leads a SpaceKru

  1. Crea una credencial de tipo Header Auth: Name Authorization, Value Bearer sk_live_….
  2. Añade un nodo HTTP Request: Method POST, URL https://app.spacekru.com/api/public/v1/leads, Authentication → Generic Credential Type → Header Auth (la credencial anterior).
  3. Activa Send Body, Body Content Type JSON, y mapea los campos.

Reacciona a eventos de SpaceKru

  1. Añade un nodo Webhook con HTTP Method POST y copia su Production URL (no la Test URL).
  2. Activa el workflow: la URL de producción solo escucha mientras el workflow está activo.
  3. Registra la URL de producción una vez con POST /subscriptions.
  4. Un n8n propio debe ser accesible en una dirección pública https:// en el puerto 443: se rechazan localhost, IPs privadas y nombres internos.

Solución de problemas

SíntomaCausa probable
401 INVALID_API_KEYEl header no es exactamente Authorization: Bearer sk_live_… (falta "Bearer ", sobra un espacio o una comilla) o la llave fue revocada.
402 PLAN_UPGRADE_REQUIREDLa cuenta de SpaceKru no está en un plan de pago activo.
403 INSUFFICIENT_SCOPELa llave es de Solo lectura. Crear leads y webhooks necesita Lectura y escritura.
400 "Unknown field(s)"Un nombre de campo que no existe (por ejemplo email en vez de work_email). Mira la lista de campos en la referencia.
400 "At least one contact channel is required"El disparador produjo un correo o teléfono vacío. Añade un filtro para que solo continúen las respuestas completas.
No llegan eventosLa suscripción se registró con otra URL o fue desactivada (revisa Integraciones → API y Webhooks). Solo se envían los eventos posteriores a la suscripción.
Dejaron de llegar eventosLa URL falló una y otra vez (20 intentos fallidos seguidos) o respondió 410. Borra la suscripción y créala de nuevo con una URL que funcione.

Más detalle de cada código: Errores.