Solución de problemas y guías de tokens
Instrucciones paso a paso para conectar LinkedIn, Facebook, Instagram y YouTube a ContentFlows. Cada plataforma requiere dos valores: un token de acceso (lo que concede permiso) y un ID (la cuenta / página / canal en la que publicar). Ambos se pegan en tu panel.
Cómo se almacenan las credenciales
Los valores de las cuatro plataformas se guardan como un único blob JSON cifrado en AWS Secrets Manager en contentflows/tenants/YOUR_TENANT_ID/social-tokens. Los secretos nunca se registran, nunca se muestran de nuevo después de guardarlos y quedan aislados de tu cuenta. ContentFlows nunca almacena la contraseña de tus redes sociales.
ContentFlows usa la API UGC Posts de LinkedIn para publicar en tu nombre. Necesitas un token de acceso con el scope de permisos w_member_social, además del member URN de la cuenta bajo la que deben aparecer las publicaciones.
Campos que ContentFlows te pedirá
LINKEDIN_ACCESS_TOKEN- Token de acceso OAuth 2.0 (vigencia de 60 days). Empieza por AQV… o algo similar.
LINKEDIN_AUTHOR_ID- Member URN — tiene un formato como urn:li:person:XXXXXXXXXX o urn:li:organization:NNNNNN para una Company Page.
Requisitos previos
- Una cuenta de LinkedIn (perfil personal) — las publicaciones se harán desde esta cuenta
- Una cuenta gratuita de desarrollador de LinkedIn — se crea automáticamente cuando creas una app
Paso a paso
Ve al LinkedIn Developer Portal
Completa los detalles de la app
- App name: cualquier cosa — p. ej. “ContentFlows Publisher”
- LinkedIn page: debes vincular una LinkedIn Company Page. Si no tienes una, crea primero una página básica de empresa (gratis).
- App logo: sube cualquier imagen cuadrada
Solicita el producto 'Share on LinkedIn'
Añade tu URI de redirección
https://www.linkedin.com/developers/tools/oauth/redirectHaz clic en Update.
Genera el token de acceso
w_member_social (y r_liteprofile si está disponible), haz clic en Request access token, luego en Allow. Copia el token — no volverá a mostrarse. Este es tu LINKEDIN_ACCESS_TOKEN.Encuentra tu Member URN
GET https://api.linkedin.com/v2/userinfoLa respuesta contiene
sub — antepón urn:li:person: para formar tu URN. Por ejemplo, si sub = "ABC123xyz", tu URN es urn:li:person:ABC123xyz. Este es tu LINKEDIN_AUTHOR_ID.urn:li:organization:COMPANY_PAGE_NUMERIC_ID — el ID numérico es visible en la URL de administración de la Page.Pega ambos valores en ContentFlows
ContentFlows publica en una Facebook Page (no en un perfil personal). Necesitas un Page access token con permiso pages_manage_posts, además del Page ID numérico.
Campos que ContentFlows te pedirá
FB_PAGE_ACCESS_TOKEN- Token de acceso de la Page de larga duración (60 days) de Meta for Developers.
FB_PAGE_ID- El ID numérico de la Facebook Page que administras (p. ej. 123456789012345).
Requisitos previos
- Una cuenta de Facebook que sea Admin de una Facebook Page
- Si aún no tienes una Facebook Page, crea una en facebook.com/pages/create (gratis, tarda 2 minutes)
Paso a paso
Abre el portal de Meta for Developers
Selecciona el tipo de app y completa los detalles
Añade el producto Facebook Login
Obtén un token de usuario desde Graph API Explorer
- En el desplegable de la esquina superior derecha, selecciona tu app
- Haz clic en Generate Access Token
- En la ventana emergente de permisos, marca todos estos:
pages_manage_posts— necesario para publicar posts (el scope que más a menudo falta)pages_read_engagementpages_show_listbusiness_managementinstagram_basic— solo si planeas reutilizar este token para Instagraminstagram_content_publish— solo si planeas reutilizar este token para Instagram
- Haz clic en Generate Access Token y autoriza
Amplía el token de usuario a uno de larga duración (60 days)
Obtén el Page access token Y el Page ID
GET /me/accounts → SubmitEn la respuesta JSON, encuentra tu Page. Tiene dos campos importantes:
access_token→ este es tuFB_PAGE_ACCESS_TOKEN— como lo has derivado de un token de usuario de larga duración, este token de Page nunca caducaid→ este es tuFB_PAGE_ID
Pega ambos valores en ContentFlows
Comprueba que el token tiene los scopes correctos (opcional pero recomendado)
- Type:
PAGE(noUSER— si dice USER, copiaste el token equivocado en el paso 6) - Expires: Never (si muestra una fecha, te saltaste el paso 5 — el token de usuario seguía siendo de corta duración cuando llamaste a
/me/accounts) - Scopes: debe incluir
pages_manage_posts. Si falta, no marcaste esa casilla en el paso 4 — vuelve a empezar desde el paso 4.
{"error":{"message":"(#200) Permissions error"}}, casi siempre es porque al token le falta pages_manage_posts. Verifícalo con el depurador (paso 8) y regenera el token si hace falta.La publicación en Instagram usa la Facebook Graph API, así que tu cuenta de Instagram debe ser una Professional account (Business o Creator) vinculada a una Facebook Page. Las cuentas personales de Instagram no pueden publicar mediante API.
Campos que ContentFlows te pedirá
IG_ACCESS_TOKEN- Opcional — déjalo en blanco y ContentFlows usará FB_PAGE_ACCESS_TOKEN como fallback. Rellénalo solo si tienes un token específico para Instagram.
IG_BUSINESS_ACCOUNT_ID- El Instagram Business Account ID vinculado a tu Facebook Page (p. ej. 17841412345678901).
Requisitos previos
- Una cuenta de Instagram Business o Creator (no una cuenta personal)
- Esa cuenta de Instagram vinculada a una Facebook Page que administras
- Una app de desarrollador de Meta con permiso
instagram_content_publish
Convierte a una Professional account (si hace falta)
Cambia el tipo de cuenta en la app de Instagram
Vincula Instagram a tu Facebook Page
Obtener el Instagram Business Account ID
Abre Graph API Explorer
instagram_basic, instagram_content_publish, pages_read_engagement, pages_manage_postsEncuentra tu Instagram Business Account ID
GET /me/accounts. Encuentra tu Page y copia su id. Después ejecuta:GET /{page-id}?fields=instagram_business_account(reemplaza
{page-id} con el ID de tu Page). La respuesta contiene un objeto instagram_business_account — copia su id. Este es tu IG_BUSINESS_ACCOUNT_ID.Pega los valores en ContentFlows
IG_BUSINESS_ACCOUNT_ID.YouTube
ContentFlows usa YouTube Data API v3 para generar metadatos de vídeo (títulos, descripciones, etiquetas) para tu calendario de contenido. Necesitas una API key de Google Cloud Console y el ID de tu canal.
Campos que ContentFlows te pedirá
YOUTUBE_API_KEY- API key de Google Cloud con YouTube Data API v3 habilitada. Empieza por AIza…
YOUTUBE_CHANNEL_ID- El ID de tu canal de YouTube (p. ej. UCxxxxxxxxxxxxxxxxxxxxxx). Encuéntralo en YouTube Studio → Settings → Channel → Advanced settings.
Requisitos previos
- Una cuenta de Google
- Un canal de YouTube vinculado a esa cuenta
- Un proyecto gratuito de Google Cloud (lo crearás durante el primer paso)
Paso a paso
Crea un proyecto de Google Cloud
Habilita YouTube Data API v3
Crea una API key
YOUTUBE_API_KEY.Encuentra tu YouTube Channel ID
UC. Este es tu YOUTUBE_CHANNEL_ID.Pega ambos valores en ContentFlows
Dominio de envío (DKIM / SPF / DMARC)
Por defecto, los newsletters salen desde noreply@contentflows.cc. Autenticar tu propio dominio mejora la entregabilidad (menos llegadas a la carpeta de spam) porque la dirección From coincide con las firmas DKIM y con tu marca visible.
Requisitos previos
- Eres propietario de un dominio (p. ej.
your-business.com). - Puedes crear registros DNS en tu registrador (Cloudflare, Route53, GoDaddy, Namecheap, etc.).
Paso a paso
Inicia el flujo
your-business.com) → haz clic en Save & show DNS records.Copia los 5 registros DNS
- 3 × CNAME (tokens DKIM)
- 1 × TXT en la raíz (SPF)
- 1 × TXT en
_dmarc.your-domain.com(DMARC)
Pégalos en tu proveedor DNS
abc123._domainkey.your-domain.com).Verifica
Listo
newsletter@your-domain.com como encabezado From, con firmas DKIM, paso SPF y alineación DMARC.noreply@contentflows.cc.Importar suscriptores
El botón + Import de la pestaña Newsletter abre una ventana modal con tres pestañas:
Carga de CSV
Sube un archivo .csv. La fila de encabezados se detecta automáticamente (cualquier columna cuyo nombre contenga email se trata como columna de correo; cualquier columna con name o first se trata como nombre). Las direcciones de correo no válidas se rechazan; los duplicados se omiten. Marca la casilla de consentimiento antes de que se habilite Import.
Mailchimp
Pega tu Mailchimp API key (formato: abc123...-us21 — la parte después del último guion es el centro de datos) y el Audience ID (panel de Mailchimp Audience → Settings → Audience name and defaults → Audience ID). ContentFlows importa todos los miembros suscritos.
ConvertKit
Pega tu ConvertKit API key (Settings → Advanced → API Key). Se importan todos los suscriptores confirmados.
Problemas habituales
- Mailchimp 401 Unauthorized — la API key es incorrecta o la cuenta la desactivó. Regénérala en Mailchimp → Account → Extras → API keys.
- “No valid email addresses” — el parser CSV no detectó ninguna columna de email. Confirma que hay una fila de encabezados y una columna llamada literalmente
email. - Import finishes instantly with 0 added — todas las filas ya estaban en tu lista. Es normal en reejecuciones.
Problemas habituales
El token no es válido o ha caducado
Los tokens de acceso caducan. Los tokens de LinkedIn duran unas 60 days. Los tokens de Page de Facebook/Instagram nunca caducan cuando se derivan de un token de usuario de larga duración (sigue exactamente los pasos de la sección de Facebook). Genera un token nuevo y actualízalo en Integrations.
Facebook: (#200) Permissions error al publicar
Con diferencia, la causa más habitual es que al token de la Page le falte el scope pages_manage_posts. Este scope es fácil de olvidar en la ventana de permisos porque Graph API Explorer no lo activa por defecto. Verifica tu token en el Access Token Debugger — si pages_manage_posts no aparece en la lista de scopes, regenera el token empezando por el Paso 4 de la guía de Facebook y marca explícitamente ese permiso.
LinkedIn: URN no válido
El Member URN debe empezar por urn:li:person: (para perfiles personales) o urn:li:organization: (para Company Pages), seguido del ID único de la cuenta. Una cadena numérica o alfanumérica sin más no es un URN válido por sí sola.
Permisos insuficientes en LinkedIn
Tu app de LinkedIn no tiene aprobado el producto Share on LinkedIn, o el token se generó sin w_member_social. Vuelve al paso 3 de la guía de LinkedIn y luego regenera el token.
Facebook: Page ID incorrecto
El Page ID es el campo numérico id de /me/accounts, NO el nombre de usuario legible de la URL de la Page. Si pegas el nombre de usuario por error, las publicaciones fallarán.
Debes ser administrador de la Facebook Page
La cuenta de Facebook que generó el token no es Admin de la Page de destino. Pide al administrador de la Page que genere él mismo el token, o pídele que te añada como Admin en facebook.com → Page settings → Page roles.
Instagram: no es una cuenta Business o Creator
Las cuentas personales de Instagram no pueden usar la Content Publishing API. Sigue los pasos de conversión anteriores.
Instagram: la cuenta no está vinculada a una Facebook Page
Tu cuenta Professional de Instagram no está conectada a una Facebook Page. Ve a Instagram Settings → Account → Linked Accounts → Facebook y completa la vinculación.
YouTube: se ha superado la cuota de API
YouTube Data API tiene una cuota predeterminada de 10,000 unidades/día, más que suficiente para las consultas de metadatos de ContentFlows. Si alcanzas el límite, probablemente la misma API key se esté usando en otro sitio — crea una clave dedicada para ContentFlows.
¿Sigues atascado?
Contacta con soporte con el mensaje de error y la plataforma que estás conectando. Incluye el número de paso en el que te has quedado.