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.
Última actualización
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: 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
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!
}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
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
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ónsetInheritFrom: el ID de la automatización de la que se hereda el valorsetInheritFromScope: 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:
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
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:
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.
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 (Editor):
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: por ejemplo, elige los destinatarios con whatsAppOneTimeNotificationUpdateSegment y luego envía con whatsAppOneTimeNotificationSend.
Suscripción
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.
Problemas comunes
"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
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"
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.
Referencia de la API de flows
Lee y crea flows de Chatfuel con la Public API: flows y grupos, bloques y conexiones, componentes de mensaje y acción, reglas de palabras clave y Test chat.
Referencia de la API de reservas y catálogo
Gestiona reservas, especialistas, productos y servicios con la Public API: lee el calendario, crea y actualiza citas y sincroniza Google Calendar.