8 agosto, 2026

UN CUENTO INFINITO PARA ALICIA: POWER AUTOMATE + GPT-5 + AZURE FOUNDRY

Hola a todos.

En los últimos meses he estado realizando diferentes experimentos con Azure Foundry, GPT-5, Power Automate y SharePoint. La mayoría de ellos estaban orientados a analítica, automatización o generación de contenido.

Sin embargo, esta vez quería probar algo completamente diferente.

La idea surgió en casa, mientras hablaba con mi hija Alicia.

¿Sería posible construir una historia que escribiese automáticamente un nuevo capítulo cada noche?

Y no me refiero a generar un cuento una única vez. La idea era mucho más interesante: crear una novela que recordase lo ocurrido anteriormente, mantuviese la continuidad de la historia y enviase automáticamente cada nueva entrega por correo electrónico.

Así nacieron los protagonistas de Los Guardianes del Valle Verde.

Una historia creada entre Alicia y yo cuyos protagonistas son:

  • Cobi, la hormiga.
  • Arañi, la araña.
  • Lira, la libélula.
  • Mantis, la mantis religiosa.
  • Salto, el saltamontes.

Todos ellos viven en el Valle Verde, un lugar lleno de flores, arroyos y vida que comienza a secarse misteriosamente.

La pregunta era sencilla:

Podríamos automatizar la escritura de una novela por capítulos utilizando Power Automate y GPT-5?

La respuesta es sí : )

Diseño de la solución

Antes de construir el flujo necesitábamos resolver un problema importante. GPT debía recordar qué había ocurrido anteriormente para mantener la coherencia narrativa. Para ello decidí almacenar toda la información en una lista SharePoint que actuaría como memoria de la historia.

Creación de la lista SharePoint

La lista utilizada se llama: CUENTO_ALICIA. Y contiene las siguientes columnas:

ColumnaTipo
TítuloTexto
CapituloNúmero
ContenidoVarias líneas de texto
ResumenVarias líneas de texto
FechaFecha

Cada elemento representa un capítulo completo de la novela.
Por ejemplo:

TítuloCapitulo
Capítulo 11
Capítulo 22
Capítulo 33

La columna Contenido almacena el texto completo generado por GPT.
La columna Resumen almacena una versión resumida de toda la historia hasta ese momento.
Este detalle es especialmente importante porque evita tener que enviar todos los capítulos anteriores al modelo en cada ejecución.

Flujo completo

El flujo final quedó compuesto por las siguientes acciones:

Recurrence
Obtener elementos
varResumenAnterior
varContenidoAnterior
varCapitulo
varPrompt
HTTP
varRespuestaGPT
varCapituloTexto
varResumenNuevo
Crear elemento
Enviar correo electrónico

Acción 1. Recurrence

La primera acción es el desencadenador del flujo.

Recurrence

En mi caso está configurada para ejecutarse todos los días a las 21:00.

De esta forma Alicia recibe automáticamente un nuevo capítulo cada noche.

Acción 2. Obtener elementos

Esta acción consulta la lista SharePoint. Configuración:

Con esta configuración recuperamos únicamente el último capítulo generado.


Acción 3. Variable varResumenAnterior

Esta variable recupera el resumen acumulado de la historia.

if(
  empty(body('Obtener_elementos')?['value']),
  '',
  first(body('Obtener_elementos')?['value'])?['Resumen']
)

Si todavía no existe ningún capítulo devuelve una cadena vacía. Si ya existen capítulos recupera el contenido almacenado en la columna Resumen.

Acción 4. Variable varContenidoAnterior

Esta variable recupera el texto completo del último capítulo generado.

if(
  empty(body('Obtener_elementos')?['value']),
  '',
  first(body('Obtener_elementos')?['value'])?['Contenido']
)

De esta forma GPT sabe exactamente dónde terminó la historia.

Acción 5. Variable varCapitulo

Calcula automáticamente el número del siguiente capítulo.

if(
  empty(body('Obtener_elementos')?['value']),
  1,
  add(int(first(body('Obtener_elementos')?['value'])?['Capitulo']), 1)
)

Si la lista está vacía generará el capítulo 1. Si ya existen capítulos incrementará automáticamente el último número almacenado.

Acción 6. Variable varPrompt

Esta variable construye dinámicamente el prompt que se enviará a GPT.

Incluye:

  • El resumen acumulado.
  • El capítulo anterior.
  • El número del nuevo capítulo.
  • Las reglas de los personajes.
  • El estilo narrativo.
  • La instrucción para generar un nuevo resumen.

La parte más importante es la siguiente:

Eres un escritor profesional de literatura infantil especializado en aventuras y misterio.

Estás escribiendo una novela por capítulos titulada:

LOS GUARDIANES DEL VALLE VERDE

==================================================
PERSONAJES PRINCIPALES (REGLA OBLIGATORIA)
==================================================

Los personajes son insectos y SIEMPRE deben seguir siéndolo.

Nunca cambies su especie.
Nunca los transformes en otros animales.
Nunca alteres sus características principales.

- Cobi es una hormiga inteligente, curiosa y observadora.
- Arañi es una araña paciente y estratega.
- Lira es una libélula rápida y valiente.
- Mantis es una mantis sabia y reflexiva.
- Salto es un saltamontes alegre y optimista.

==================================================
CONTEXTO DE LA HISTORIA
==================================================

Resumen acumulado:

@{variables('varResumenAnterior')}

Último capítulo:

@{variables('varContenidoAnterior')}

==================================================
ESTILO DE ESCRITURA OBLIGATORIO
==================================================

La historia debe ser dinámica, divertida y fácil de leer.

Utiliza frases cortas.

Utiliza párrafos cortos.

Da prioridad a la acción y los diálogos.

Evita descripciones largas.

Evita lenguaje poético.

Evita metáforas complejas.

Evita reflexiones filosóficas.

Evita repetir ideas.

Cada escena debe hacer avanzar la historia.

El lector debe sentir que siempre está ocurriendo algo interesante.

Escribe con un estilo similar a:

- Los Cinco
- Los Futbolísimos
- Geronimo Stilton
- Novelas juveniles de aventuras y misterio

==================================================
REGLAS DE LA HISTORIA
==================================================

Mantén el misterio principal:

¿Por qué se está secando el Valle Verde?

En cada capítulo debe ocurrir algo importante.

Cada capítulo debe incluir:

- una investigación
- una conversación importante
- una nueva pista
- un descubrimiento

No introduzcas más de un personaje nuevo por capítulo.

Los protagonistas principales deben aparecer siempre:

- Cobi
- Arañi
- Lira
- Mantis
- Salto

==================================================
LONGITUD
==================================================

El capítulo debe tener entre 500 y 700 palabras.

No más.

==================================================
FINAL DEL CAPÍTULO
==================================================

El capítulo debe terminar con suspense.

Debe dejar una pregunta sin responder o una nueva pista importante.

El lector debe tener ganas de leer el siguiente capítulo.

==================================================
FORMATO DE SALIDA
==================================================

Primero escribe:

CAPÍTULO @{variables('varCapitulo')}

Después escribe el capítulo completo.

Al final escribe exactamente:

===RESUMEN===

Y después genera un resumen acumulado de toda la historia hasta este momento en un máximo de 10 líneas.

No escribas explicaciones.

No escribas notas para el autor.

No rompas el formato solicitado.

Con esto conseguimos que el modelo tenga memoria de la historia.

Acción 7. HTTP

La generación del capítulo se realiza mediante una llamada HTTP a Azure Foundry

Método:

Body simplificado:

{
  "messages": [
    {
      "role": "system",
      "content": "Eres un escritor profesional de literatura infantil. Responde directamente con el texto final, sin razonamiento previo."
    },
    {
      "role": "user",
      "content": "@{variables('varPrompt')}"
    }
  ],
  "max_completion_tokens": 8000
}

La respuesta devuelve:

  • El capítulo completo.
  • El resumen actualizado.

Acción 8. Variable varRespuestaGPT

Almacena la respuesta completa del modelo.

body('HTTP')?['choices']?[0]?['message']?['content']

La respuesta tiene el siguiente formato:

Acción 9. Variable varCapituloTexto

Separa únicamente el capítulo.

first(split(variables('varRespuestaGPT'), '===RESUMEN==='))

Este contenido será:

  • Guardado en SharePoint.
  • Enviado por correo electrónico.

Acción 10. Variable varResumenNuevo

Separa únicamente el resumen actualizado.

last(split(variables('varRespuestaGPT'), '===RESUMEN==='))

Este resumen será utilizado como memoria en la siguiente ejecución.


Acción 11. Crear elemento

La acción almacena toda la información en SharePoint.

Título
concat('Capítulo ', string(variables('varCapitulo')))

Capitulo
variables('varCapitulo')

Contenido
variables('varCapituloTexto')

Resumen
variables('varResumenNuevo')

Fecha
utcNow()

Acción 12. Enviar correo electrónico

Una vez generado el capítulo, Outlook envía automáticamente la nueva entrega.

Para mejorar la presentación utilizo HTML.

Además convierto los saltos de línea generados por GPT en saltos HTML:

Os dejo el código del Asunto y el Cuerpo

concat('📖 Los Guardianes del Valle Verde - Capítulo ', string(variables('varCapitulo')))
<h2>📖 Los Guardianes del Valle Verde</h2>

<p>Hola Alicia 😊</p>

<p>
Ya está disponible un nuevo capítulo de la aventura de
<b>Cobi, Arañi, Lira, Mantis y Salto</b>.
</p>

<hr>

@{replace(variables('varCapituloTexto'), decodeUriComponent('%0A'), '<br><br>')}

<hr>

<p>
✨ Mañana continuará la aventura...
</p>

<p>
🐜 Cobi &nbsp;&nbsp;
🕷️ Arañi &nbsp;&nbsp;
🪰 Lira &nbsp;&nbsp;
🦗 Salto &nbsp;&nbsp;
🌿 Mantis
</p>

De esta forma el capítulo aparece correctamente formateado dentro del correo.

Resultado final

Cada noche el flujo realiza automáticamente las siguientes tareas:

  1. Recupera la memoria de la historia.
  2. Lee el último capítulo.
  3. Calcula el siguiente número de capítulo.
  4. Genera una nueva entrega mediante GPT-5.
  5. Actualiza el resumen acumulado.
  6. Guarda toda la información en SharePoint.
  7. Envía el capítulo por correo electrónico.

Todo ello sin intervención manual.

Os dejo el primer capítulo:

📖 Los Guardianes del Valle Verde
Hola Alicia 😊
Ya está disponible un nuevo capítulo de la aventura de Cobi, Arañi, Lira, Mantis y Salto. 
________________________________________
CAPÍTULO 1

El Valle Verde estaba más callado que nunca. El arroyo que serpenteaba entre las hojas solo dejaba un hilo de agua. Las piedras brillaban con polvo. Las flores inclinaban sus cabezas.

Cobi reunió al grupo junto al viejo sauce. Sus patas removían la tierra con nervio. Era una hormiga observadora. "Algo pasa con el agua", dijo. "No es solo que baje. Se escurre de golpe en algunos lugares."

Arañi descendió por su hilo. La araña miró la orilla del arroyo. Su mirada era paciente y fría. "He tejido sobre la roca. Hay restos pegajosos en mi tela", comentó. "No es barro. Es como... cera oscura."

Lira llegó a toda velocidad. La libélula revoloteó sobre el espejo de agua. "Sección por sección", dijo. "En el estanque de nenúfares hay menos de la mitad. Y algo lo cubre por las noches."

Mantis apoyó dos patas en la rama. Habló despacio. "Necesitamos investigar la fuente. Si la cabecera se seca, todo el valle se marchita", dijo. Sus ojos se movían con calma. "Debemos ver por dónde se va el agua."

Salto dio un gran brinco y sonrió. "¡Una aventura! ¡Vamos!", exclamó. El saltamontes alegraba el grupo. Su optimismo empujó a todos hacia la colina.

Comenzó la investigación. Subieron por el lecho seco del arroyo. Cobi contaba pequeñas marcas en la arena. Arañi seguía con su hilo, dejando señales. Lira volaba adelante, buscando corrientes ocultas. Mantis observaba las plantas. Salto saltaba y lanzaba preguntas.

Encontraron huellas pequeñas en el barro reseco. No eran patas normales. Parecían marcas de rueda. Cobi se inclinó. "No es de animal", murmuró. "¿Herramientas?", preguntó Salto con los ojos brillantes.

Arañi extendió su telaraña entre dos juncos. Una fibra blanca se enredó. Traía un trocito de tela. Tenía un símbolo: una estrella de seis puntas con una línea curvada. "Lo vi anoche", dijo Lira. "Una sombra lo arrastró."

La conversación se volvió urgente y decisiva. Mantis propuso un plan. "Dividimos el valle en tres secciones. Yo vigilo desde la rama alta. Lira y Salto van por el cielo y los prados. Cobi y Arañi revisan la cabecera." Todos aceptaron. La decisión era un paso firme. Era una promesa.

En la tercera curva hallaron una zanja. Dentro, un brillo. Cobi indicó. "¡Cristal!" Todos bajaron. Era un trozo de tubo, liso y transparente. Tenía ranuras diminutas y una marca grabada: la misma estrella de seis puntas.

Lira tocó el cristal con su pata. Hizo un sonido hueco, como música metálica. "No es natural", dijo. Arañi se acercó y olió. "Huele a aceite", dijo. "Y a algo caliente."

Descubrimiento importante. Cerca del tubo hallaron pequeñas piezas metálicas, como dientes de engranaje, diminutas. Estaban enterradas en el barro seco. Había unas marcas que parecía que alguien había arrastrado cables. El grupo miró en silencio. Algo mecánico estaba en el valle.

Salto intentó animar. "Quizá es un invento que arregla fuentes", dijo. Pero Mantis frunció las patas. "O que las apaga", respondió. Su voz era grave.

Mientras recogían las piezas, oyeron un zumbido lejano. No era el zumbido de los abejorros. Era más profundo. Lira voló hasta la cima de la roca para ver. Sus alas cortaban el aire. Del otro lado del cerro, entre la maleza, se levantó una columna de humo fino. Brillaba con un tono azul al atardecer.

Cobi señaló hacia la sombra. "Esa no es una fogata normal", dijo. "No hay madera por allí. ¿Quién podría hacer eso?" Arañi sostuvo el trocito de tela en su tela. La marca se veía clara a la luz moribunda.

La nueva pista pesó en el aire. Había algo con piezas metálicas y una marca que repetía. Había humo azul saliendo de la colina. Había huellas de rueda en la orilla.

Entonces, desde la maleza, se escuchó un sonido distinto: un clic seco, como si alguien hubiera cerrado una tapa pequeña. Todo quedó en silencio.

¿Quién había dejado el tubo con la estrella? ¿Qué hacía ese humo azul? Una sombra se movió detrás de la roca. Algo, o alguien, volvía hacia el valle.


________________________________________
✨ Mañana continuará la aventura... 
🐜 Cobi    🕷️ Arañi    🪰 Lira    🦗 Salto    🌿 Mantis 

En este ejemplo he dejado que la historia continúe indefinidamente, generando un nuevo capítulo cada noche.

Sin embargo, si queremos que la novela tenga una duración determinada, podemos incorporar fácilmente una regla adicional en el flujo.

Por ejemplo, podríamos indicar que la historia finalice en el capítulo 10, 20 o cualquier otro número que decidamos.

Bastaría con controlar el número de capítulo generado y, llegado el momento, pedir a GPT que cierre todas las tramas abiertas, resuelva el misterio principal y escriba un desenlace satisfactorio para los personajes.

De esta forma podríamos crear novelas completas con principio, desarrollo y final, manteniendo la automatización del proceso y permitiendo incluso encadenar distintas sagas o aventuras utilizando la misma arquitectura.

Pero esto lo haré en el próximo capít … digoooo, post. Sin embargo, así es interesante no poner límites y experimentar qué es lo que hace la IA.

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies