Ú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
- Abre Sitios web y elige Añadir sitio.
- Selecciona Payload CMS como plataforma.
- Introduce el nombre del sitio y la URL pública.
- Introduce la URL de la API Payload, el email, la contraseña, el slug de autenticación y el slug de posts.
- Añade slugs de categorías y medios si tu proyecto los usa.
- Selecciona Continuar. auto-post.io inicia sesión, lee un post de ejemplo y sugiere un mapeo de campos.
- 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.
// 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:
# 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):
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
_statusendraft - El contenido publicado se envía con
_statusenpublished - 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.
{
"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
idempotencyKeyantes de escribir contenido - Devuelve
2xxsolo 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