---
title: "Referencia de la API de Fuely AI y Automations"
description: "Configura Fuely AI con la Public API: Automations y sus ajustes, conocimiento de la empresa, reglas de reserva y broadcasts de WhatsApp."
canonical_url: https://chatfuel.com/es/docs/public-api/ai-automations
markdown_url: https://chatfuel.com/es/docs/public-api/ai-automations.md
last_updated: 2026-10-06
lang: es
site: https://chatfuel.com/docs
llms_txt: https://chatfuel.com/llms.txt
---

# Referencia de la API de Fuely AI y Automations

Configura Fuely AI con la Public API: Automations y sus ajustes, conocimiento de la empresa, reglas de reserva y broadcasts de WhatsApp.

Fuely AI es el asistente que responde a los contactos de un bot, y las Automations deciden dónde y cómo responde. Con la Public API, una integración puede leer y cambiar las Automations y sus ajustes, completar el conocimiento de la empresa que usa Fuely AI, definir las reglas de reserva y crear broadcasts de WhatsApp. La lectura funciona para usuarios virtuales **Agent**; cualquier cambio requiere **Editor**.

La API usa el mismo modelo que **Fuely AI → Automations** en el panel, descrito en [Automations](https://chatfuel.com/es/docs/ai-features/automations): el **Main bot** (ámbito `All`), una **base automation** por fuente y hasta 30 **custom automations** por cada fuente que las admite.

## Cómo leer las Automations [#cómo-leer-las-automations]

```graphql
type Bot {
  # Agent. All automations, or those of one scope.
  fuelyAutomations(scope: FuelyAutomationScope): [FuelyAutomation!]!
  fuelyAutomation(id: FuelyAutomationID!): FuelyAutomation!
  # Agent. Conversion events Fuely AI can send to Meta.
  availableMetaConversionEventNames: FuelyAvailableMetaConversionEventNames!
}
```

```graphql
query Automations($botID: BotID!) {
  bot(id: $botID) {
    fuelyAutomations {
      id
      scope          # All, WhatsAppDirectMessages, InstagramPostComments, …
      isBase         # true for Main bot and base automations
      name           # null for base automations
      enabled
      settings {
        __typename
        inheritsFrom { id scope }
        ... on FuelySettingIncomingMessages { howToReply messagePrompt }
      }
    }
  }
}
```

Los ámbitos son `All` (Main bot); `WhatsAppDirectMessages`, `WhatsAppClickFromAds`, `WhatsAppClickFromPosts`; `InstagramDirectMessages`, `InstagramPostComments`, `InstagramAdComments`, `InstagramStoryReplies`, `InstagramIgMeLinks`, `InstagramClickFromAds`; `FacebookDirectMessages`, `FacebookPostComments`, `FacebookMMeLinks`, `FacebookClickFromAds`; `TikTokDirectMessages`, `TikTokPostComments`, `TikTokClickFromAds`; y `WebWidgetDirectMessage`.

## Cómo cambiar las Automations [#cómo-cambiar-las-automations]

```graphql
type Mutation {
  # Editor. Custom automation, only for scopes that support targeting; up to 30 per scope.
  # Errors: FuelyAutomationNameInvalid, FuelyAutomationScopeInvalid, FuelyAutomationScopeLimitReached
  fuelyAutomationCreate(botID: BotID!, scope: FuelyAutomationScope!, name: String!): FuelyAutomation!
  # Editor. Custom automations only (FuelyAutomationNotRenamable, FuelyAutomationNotDeletable for base ones).
  fuelyAutomationSetName(botID: BotID!, id: FuelyAutomationID!, name: String!): FuelyAutomation!
  fuelyAutomationDelete(botID: BotID!, id: FuelyAutomationID!): Bot!
  # Editor. Turning Main bot off switches off all AI replies.
  fuelyAutomationSetEnabled(botID: BotID!, id: FuelyAutomationID!, enabled: Boolean!): FuelyAutomation!
  # Editor. Changes one setting; see below.
  fuelyAutomationUpdateSetting(botID: BotID!, id: FuelyAutomationID!, update: FuelySettingUpdateInput!): FuelyAutomation!
  # Editor. Writes settings onto base automations and creates custom automations in one call.
  fuelyAutomationApplyTemplate(botID: BotID!, template: FuelyAutomationTemplateInput!): Bot!
}
```

Los nombres tienen de 1 a 200 caracteres. Los cambios en las Automations de un bot se aplican de uno en uno; si hay otro cambio en curso, la llamada falla con `FuelyAutomationBeingEdited` y puedes reintentarla.

## Cómo actualizar un ajuste [#cómo-actualizar-un-ajuste]

`fuelyAutomationUpdateSetting` cambia exactamente un ajuste por llamada. `FuelySettingUpdateInput` tiene un campo por ajuste: `messageDelays`, `whenAIReplies`, `catalogImages`, `incomingMessages`, `bookingRules`, `switchToHuman`, `followUps`, `collectContactInfo`, además de los ajustes de segmentación `keywords`, `listOfPosts`, `listOfAds`, `listOfStories`, `refLinks`, `publicReply`, `privateReply` y `sendEventsToMeta`. Cada uno acepta una de estas opciones:

* `update`: un valor explícito para esta automatización
* `setInheritFrom`: el ID de la automatización de la que se hereda el valor
* `setInheritFromScope`: el ámbito cuya base automation se usa como origen de la herencia

Main bot no puede heredar. Una base automation solo puede heredar de Main bot; una custom automation, de Main bot o de su propia base automation. Las demás combinaciones fallan con `FuelyInheritFromInvalid`, y un ajuste que no existe en el ámbito falla con `FuelySettingNotAllowedInScope`.

Por ejemplo, así se definen las instrucciones de IA de la base automation de WhatsApp:

```graphql
mutation Instructions($botID: BotID!, $automationID: FuelyAutomationID!) {
  fuelyAutomationUpdateSetting(
    botID: $botID
    id: $automationID
    update: {
      incomingMessages: {
        update: {
          howToReply: UsingAI
          messagePrompt: "Answer in Portuguese. Offer a free consultation when asked about prices."
        }
      }
    }
  ) {
    id
    settings { ... on FuelySettingIncomingMessages { howToReply messagePrompt inheritsFrom { id } } }
  }
}
```

`messagePrompt` contiene las **Additional instructions** y debe tener de 1 a 5000 caracteres. El ajuste `keywords` acepta hasta 50 palabras clave de hasta 50 caracteres cada una.

## Conocimiento de la empresa y reglas de reserva [#conocimiento-de-la-empresa-y-reglas-de-reserva]

Fuely AI responde con la información de la empresa que está en la Knowledge Base del bot y agenda citas según sus reglas de reserva. Léelas con `bot.fuelyConfig { knowledgeBase usage booking }` (**Agent**). Para cambiarlas se necesita **Editor**:

```graphql
type Mutation {
  fuelyConfigSetCompanyName(botID: BotID!, companyName: String!): Bot!
  fuelyConfigSetEmail(botID: BotID!, email: String!): Bot!
  fuelyConfigSetPhone(botID: BotID!, phone: String!): Bot!
  fuelyConfigSetAddress(botID: BotID!, address: String!): Bot!
  fuelyConfigSetWebsite(botID: BotID!, website: String!): Bot!
  fuelyConfigSetHowToPay(botID: BotID!, howToPay: String!): Bot!
  fuelyConfigSetFAQs(botID: BotID!, faqs: [FuelyKnowledgeBaseFAQInput!]!): Bot!
  fuelyConfigSetAdditionalInstructions(botID: BotID!, additionalInstructions: String!): Bot!
  fuelyConfigSetBusinessHoursSchedule(botID: BotID!, schedule: FuelyBusinessHoursScheduleUpdateInput!): Bot!

  fuelyConfigBookingUpdateAppointments(botID: BotID!, update: FuelyConfigBookingAppointmentsUpdateInput!): Bot!
  fuelyConfigBookingUpdateConfirmation(botID: BotID!, enabled: Boolean!, additionalInfo: String): Bot!
  fuelyConfigBookingUpdateNotificationChannel(botID: BotID!, channel: FuelyBookingNotificationChannel!): Bot!
  fuelyConfigBookingUpdateLocale(botID: BotID!, locale: DashboardLocale!): Bot!
}
```

`fuelyConfigSetFAQs` reemplaza toda la lista de preguntas y respuestas, así que envía todas las FAQ que quieras conservar. Los productos y servicios que ofrece Fuely AI se gestionan en la [API de reservas y catálogo](https://chatfuel.com/es/docs/public-api/bookings-and-catalog).

## Broadcasts de WhatsApp [#broadcasts-de-whatsapp]

Un broadcast envía una plantilla de WhatsApp aprobada a un segmento de contactos, una sola vez o de forma programada. Lee los broadcasts con `bot.fuelyBroadcasts(first, after)` (**Agent**). Créalos con una plantilla completada de la [API de mensajería](https://chatfuel.com/es/docs/public-api/messaging) (**Editor**):

```graphql
type Mutation {
  # A one-time broadcast, sent when you call whatsAppOneTimeNotificationSend.
  fuelyBroadcastWhatsAppOneTimeNotificationCreate(botID: BotID!, filledTemplateID: FilledWhatsAppTemplateID!): FuelyBroadcast!
  # A broadcast scheduled for sendTime, which must be in the future (FuelyBroadcastSendTimeCanNotBeInPast).
  fuelyBroadcastWhatsAppScheduledMessageCreate(botID: BotID!, filledTemplateID: FilledWhatsAppTemplateID!, sendTime: Time!): FuelyBroadcast!
}
```

Cada broadcast es un pequeño flujo: `settingsBlock` define cuándo y a quién se envía, y `payloadBlock` contiene la plantilla. Define la audiencia y el momento del envío con las mutaciones `whatsAppOneTimeNotification*` y `whatsAppScheduledMessage*` de la [API de flujos](https://chatfuel.com/es/docs/public-api/flows): por ejemplo, elige los destinatarios con `whatsAppOneTimeNotificationUpdateSegment` y luego envía con `whatsAppOneTimeNotificationSend`.

## Suscripción [#suscripción]

```graphql
type Subscription {
  # Agent. Fires when any automation of the bot changes.
  fuelyAutomationUpdated(botID: BotID!): FuelyAutomation!
}
```

Para probar una automatización sin enviar mensajes a contactos reales, inicia un Test chat con `previewResponsesStartForFuelyAutomation`, descrito en la [API de flujos](https://chatfuel.com/es/docs/public-api/flows).

## Problemas comunes [#problemas-comunes]

### "FuelyAutomationBeingEdited" [#fuelyautomationbeingedited]

Otra persona, en el panel o mediante la API, está cambiando las Automations del bot en ese mismo momento. Espera un segundo y vuelve a intentarlo.

### "FuelyAutomationScopeInvalid" al crear una automatización [#fuelyautomationscopeinvalid-al-crear-una-automatización]

Las custom automations solo existen en las fuentes de comentarios, anuncios, historias y enlaces. Los ámbitos de mensajes directos y `All` solo tienen su base automation; en ese caso, cambia los ajustes de esa base automation.

### "FuelyInheritFromInvalid" [#fuelyinheritfrominvalid]

El origen de la herencia no está permitido. Una base automation solo puede heredar de Main bot (`setInheritFromScope: All`), y una custom automation, solo de Main bot o de su propia base automation.
