> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revem.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ejecutar una automatización para contactos o tickets

> Ejecuta una automatización a demanda habilitada para hasta 100 IDs de la organización. Requiere el encabezado Idempotency-Key (1–200 caracteres): repetir la misma solicitud devuelve la misma invocación; reutilizarlo con otros datos devuelve 409. Los IDs duplicados se ejecutan una sola vez. Todos los sujetos se validan antes de aceptar el lote. Cada sujeto ejecuta por separado la misma versión del flujo. La ejecución es asíncrona y se recupera si la cola no está disponible. Las condiciones se expresan como decisiones dentro del flujo. Los inputs opcionales son valores escalares accesibles como {{inputs.nombre}}.



## OpenAPI

````yaml /openapi.json post /automations/public/v1/rules/{id}/invocations
openapi: 3.1.0
info:
  title: Revem API
  version: 1.0.0
  description: >-
    La API pública de Revem para integraciones de servidor a servidor:
    contactos, organizaciones, tickets, reuniones y el canal de webchat. Se
    autentica con la API key de tu organización.
  contact:
    name: Soporte Revem
    email: soporte@revem.ai
    url: https://revem.ai
servers:
  - url: https://api.revem.ai
    description: Producción
security:
  - apiKey: []
tags:
  - name: WhatsApp
    description: >-
      Envía plantillas aprobadas desde los números conectados de tu
      organización.
  - name: Organizaciones
    description: >-
      Sincroniza empresas por identificador tributario, con atributos
      personalizados por nombre.
  - name: Contactos
    description: >-
      Sincroniza tu base de clientes con Revem. Los contactos se identifican por
      teléfono al crearlos y por id después.
  - name: Tickets
    description: Lee y actualiza los tickets de tu embudo desde tu sistema de gestión.
  - name: Webchat
    description: >-
      Conecta el chat de tu sitio con Revem: registra lo que escribe el
      visitante y lee las respuestas del equipo o del agente.
  - name: Reuniones
    description: >-
      Requiere el módulo meetings. Reuniones independientes de las citas
      médicas, con responsable, capacidad y reservas por contacto y ocurrencia.
paths:
  /automations/public/v1/rules/{id}/invocations:
    post:
      tags:
        - Automatizaciones
      summary: Ejecutar una automatización para contactos o tickets
      description: >-
        Ejecuta una automatización a demanda habilitada para hasta 100 IDs de la
        organización. Requiere el encabezado Idempotency-Key (1–200 caracteres):
        repetir la misma solicitud devuelve la misma invocación; reutilizarlo
        con otros datos devuelve 409. Los IDs duplicados se ejecutan una sola
        vez. Todos los sujetos se validan antes de aceptar el lote. Cada sujeto
        ejecuta por separado la misma versión del flujo. La ejecución es
        asíncrona y se recupera si la cola no está disponible. Las condiciones
        se expresan como decisiones dentro del flujo. Los inputs opcionales son
        valores escalares accesibles como {{inputs.nombre}}.
      operationId: invokeAutomation
      parameters:
        - name: id
          in: path
          required: true
          description: ID de la automatización a demanda.
          schema:
            type: string
            format: uuid
        - name: idempotency-key
          in: header
          required: true
          description: >-
            Clave única por organización. Reutilízala solo para reintentar la
            misma solicitud.
          schema:
            type: string
            minLength: 1
            maxLength: 200
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvocationBody'
      responses:
        '202':
          description: Invocación persistida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvocationAccepted'
        '400':
          description: Entrada incompatible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvocationError'
        '401':
          description: Sin credencial, o la API key no existe o fue revocada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
              example:
                error: Unauthorized
                message: Invalid API key
        '403':
          description: Sin permiso.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvocationError'
        '404':
          description: Automatización o sujetos no encontrados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvocationError'
        '409':
          description: Clave reutilizada con otros datos o automatización no disponible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvocationError'
        '429':
          description: >-
            La key superó su límite de solicitudes por minuto. El header
            `retry-after` indica cuánto esperar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
              example:
                ok: false
                error: Too many requests. Retry in 1 minute.
          headers:
            retry-after:
              description: Segundos que esperar antes de reintentar.
              schema:
                type: integer
            x-ratelimit-limit:
              description: Solicitudes permitidas por minuto.
              schema:
                type: integer
            x-ratelimit-remaining:
              description: Solicitudes que quedan en la ventana actual.
              schema:
                type: integer
            x-ratelimit-reset:
              description: Segundos hasta que la ventana se reinicia.
              schema:
                type: integer
components:
  schemas:
    InvocationBody:
      type: object
      properties:
        subjectType:
          type: string
          enum:
            - contact
            - ticket
        subjectIds:
          minItems: 1
          maxItems: 100
          type: array
          items:
            type: string
            format: uuid
        inputs:
          default: {}
          type: object
          additionalProperties:
            anyOf:
              - type: string
                maxLength: 2000
              - type: number
              - type: boolean
              - type: 'null'
      required:
        - subjectType
        - subjectIds
      additionalProperties: false
    InvocationAccepted:
      type: object
      properties:
        invocationId:
          type: string
          format: uuid
        subjectCount:
          type: integer
      required:
        - invocationId
        - subjectCount
      additionalProperties: false
    InvocationError:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
      required:
        - error
      additionalProperties: false
    AuthError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
          description: Presente sólo en el `403`.
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
    RateLimitError:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
          description: Incluye cuánto esperar antes de reintentar.
      required:
        - ok
        - error
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        La API key de tu organización, con la forma `rvm_<prefijo>.<secreto>`,
        enviada como `Authorization: Bearer rvm_…`. Revem la emite y sólo se
        muestra una vez; si la pierdes se reemplaza, no se recupera.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.