Skip to content

Última actualización: 2026-10-04

Payload CMS y webhooks ​

auto-post.io publica artículos generados en un proyecto Payload CMS mediante su API REST. Los webhooks de contenido personalizados no son un tipo de destino activo en el catálogo de la app; el ejemplo siguiente es solo para un pipeline externo.

Integración Payload CMS ​

Lo que necesitas ​

Antes de conectar Payload CMS, prepara:

  • Una URL base pública de la API REST de Payload
  • Una cuenta de usuario Payload con acceso a las colecciones configuradas
  • El slug de la colección de autenticación, normalmente users
  • El slug de la colección de posts
  • Slugs opcionales de categorías y medios

Conectar Payload CMS ​

  1. Abre Sitios web y elige Añadir sitio.
  2. Selecciona Payload CMS como plataforma.
  3. Introduce el nombre del sitio y la URL pública.
  4. Introduce la URL de la API Payload, el email, la contraseña, el slug de autenticación y el slug de posts.
  5. Añade slugs de categorías y medios si tu proyecto los usa.
  6. Selecciona Continuar. auto-post.io inicia sesión, lee un post de ejemplo y sugiere un mapeo de campos.
  7. Revisa el mapeo sugerido y confirma la conexión.

La conexión guarda las credenciales necesarias para obtener un JWT de Payload. Los tokens se renuevan o recrean cuando hacen falta en peticiones posteriores.

Mapeo de campos ​

El mapeo conecta campos de auto-post.io con campos de tu colección de posts de Payload:

  • Título
  • Slug
  • Contenido
  • Fecha de publicación
  • Categorías
  • Imagen destacada
  • Imagen Open Graph
  • Título, descripción y palabras clave SEO
  • URL pública del artículo

Los campos anidados se admiten con rutas con puntos como seo.title. Usa la sugerencia de IA como punto de partida y revisa cada campo antes de guardar.

El rich text de Payload se envía como JSON Lexical por defecto. Elige el formato HTML solo si tu colección espera HTML.

Colecciones y endpoints de Payload ​

El siguiente ejemplo muestra la forma mínima de colección esperada. Los nombres de campo pueden diferir según el mapeo configurado en auto-post.io.

js
// payload/collections/Posts.js
import { lexicalEditor } from '@payloadcms/richtext-lexical';

export const Posts = {
  slug: 'posts',
  access: {
    create: ({ req }) => Boolean(req.user),
    read: () => true,
    update: ({ req }) => Boolean(req.user),
  },
  fields: [
    { name: 'title', type: 'text', required: true },
    { name: 'slug', type: 'text', required: true, unique: true },
    { name: 'content', type: 'richText', editor: lexicalEditor() },
    { name: 'publishedAt', type: 'date' },
    { name: 'categories', type: 'relationship', relationTo: 'categories', hasMany: true },
    { name: 'featuredImage', type: 'upload', relationTo: 'media' },
  ],
};

auto-post.io usa estos endpoints REST de Payload. Sustituye https://cms.example.com/api y los slugs por tus valores:

bash
# Login y JWT
curl -X POST "https://cms.example.com/api/users/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"YOUR_PASSWORD"}'

# Crear un post
curl -X POST "https://cms.example.com/api/posts" \
  -H "Authorization: JWT YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"title":"A generated article","slug":"a-generated-article","content":{"root":{"type":"root","children":[],"direction":null,"format":"","indent":0,"version":1}},"_status":"draft"}'

# Actualizar un post existente
curl -X PATCH "https://cms.example.com/api/posts/123" \
  -H "Authorization: JWT YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"title":"An updated article","_status":"published"}'

Para imágenes destacadas, configura una colección de medios y asegúrate de que el campo de subida acepta el nombre multipart configurado en auto-post.io (file por defecto):

bash
curl -X POST "https://cms.example.com/api/media" \
  -H "Authorization: JWT YOUR_JWT" \
  -F "[email protected]"

Comportamiento de publicación ​

Cuando una campaña genera un artículo para un sitio Payload:

  • El borrador se envía con _status en draft
  • El contenido publicado se envía con _status en published
  • Los documentos Payload existentes se actualizan en lugar de duplicarse cuando se conoce el ID
  • Las categorías se sincronizan desde la colección de categorías configurada
  • Las imágenes destacadas se suben a la colección de medios cuando el campo está mapeado
  • La URL pública del artículo proviene del campo URL configurado, de una URL devuelta o de la plantilla de ruta configurada

Consulta Gestión de campañas para configurar campañas que publiquen en Payload CMS.

Webhooks (facturación y ejemplos externos) ​

Webhooks de contenido personalizados (solo ejemplo externo) ​

No hay un catálogo activo en la app ni una ruta personalizada para enviar artículos generados a URLs webhook arbitrarias. Si necesitas un paso de entrega personalizado, constrúyelo fuera de auto-post.io (por ejemplo leyendo el contenido publicado desde Payload, WordPress u otro CMS conectado).

La forma JSON siguiente es un ejemplo de contrato que puedes implementar en tu propio servidor. No es un payload saliente garantizado de auto-post.io hoy.

json
{
  "event": "article.published",
  "idempotencyKey": "article-123-published",
  "article": {
    "title": "A generated article",
    "slug": "a-generated-article",
    "content": "<p>Article content</p>",
    "status": "published",
    "publishedAt": "2026-09-10T19:20:00Z",
    "featuredImage": "https://cdn.example.com/articles/a-generated-article.jpg"
  }
}

Si adoptas un contrato similar en tu lado:

  • Autentica y valida cada petición
  • Rechaza payloads inválidos con 4xx
  • Haz único idempotencyKey antes de escribir contenido
  • Devuelve 2xx solo tras aceptar la petición

Solución de problemas ​

La conexión falla ​

  • Confirma que la URL de la API apunta a la API REST de Payload, no solo al frontend público
  • Revisa el slug de autenticación y las credenciales
  • Confirma que la colección de posts existe y es legible por el usuario
  • Comprueba que la API es accesible desde Internet

Se rechazan artículos ​

  • Verifica que los nombres de campo mapeados coinciden con la colección Payload
  • Confirma el tipo del campo de contenido y el formato rich text elegido
  • Revisa campos obligatorios, formatos de relación y permisos de medios
  • Revisa las reglas de acceso create/update de la colección

Faltan imágenes ​

  • Configura un slug de colección de medios
  • Revisa el campo de imagen destacada u Open Graph mapeado
  • Confirma que la colección de medios acepta el campo de subida configurado

Documentación relacionada ​

Última actualización: 2026-10-04