Configurar las plataformas
Cómo se conecta cada red y cada servicio, paso a paso: lo que se hace en la plataforma, lo que se rellena en ut-content y cómo se comprueba que funciona. Todo se conecta en Conexiones, y solo lo hace quien administra la empresa.
Antes de empezar
Casi todas las redes piden dos cosas distintas, y confundirlas cuesta días: la app, que se crea una vez en la plataforma, y la cuenta, que autoriza cada persona desde su propia sesión. ut-content nunca ve ni guarda contraseñas de redes: recibe un permiso que quien lo dio puede retirar cuando quiera.
- Con la app de ut-content. Si la tarjeta dice «Esta empresa usa la app de … de ut-content», no hay que crear nada: basta con pulsar Conectar y autorizar.
- Con una app propia. Si no, o si prefieres la tuya, se crea la app en la plataforma siguiendo los pasos de cada apartado y se pegan sus datos en la tarjeta.
- Guardar comprueba. Al guardar, ut-content prueba la conexión: si falla, no se guarda nada y dice por qué.
- Lo que falta se ve. Cada sección del índice de Conexiones lleva en ámbar cuántas conexiones le faltan, y Solo lo que falta las junta todas.
Publica los posts personales de cada persona y, con permiso de LinkedIn, los de la página de empresa. El perfil de cada persona lo autoriza ella misma.
Qué hace falta
- Cada persona que firma, con su cuenta de LinkedIn.
- Para la página de empresa: ser superadministrador de la página.
Con una app propia, en LinkedIn
-
Crear la app
En linkedin.com/developers/apps, «Create app»: nombre (sin «Linked» ni «In»), la página de empresa y el logo.
-
Añadir los productos
En la pestaña Products: Share on LinkedIn (publicar en el perfil, permiso
w_member_social) y Sign In with LinkedIn using OpenID Connect (saber quién autoriza). -
Copiar los datos y la URL de retorno
En la pestaña Auth están el Client ID y el Primary Client Secret. En OAuth 2.0 settings → Authorized redirect URLs, añadir exactamente
https://content.utio.es/oauth/linkedin/callback. -
Verificar la app con la página
Un superadministrador de la página tiene que verificar la app: es el paso que más veces falta.
En ut-content
-
Guardar la app
Conexiones → Redes sociales → LinkedIn: Client ID, Client secret, URL de retorno y, si se va a publicar en la página, su URN. Guardar app.
-
Conectar la página
Conectar cuenta, desde la sesión de quien administra la página.
-
Conectar a cada persona
En Conexiones → Personas, Enlace de conexión de cada una: lo abre ella, en su navegador, y autoriza su perfil.
La conexión de LinkedIn de una persona caduca a los 60 días. Una semana antes y la víspera, ut-content le manda por correo y por WhatsApp un enlace nuevo para renovarla; en su ficha se ve la fecha.
Mientras una persona no haya conectado, sus posts esperan a que lo haga: ut-content lo vuelve a intentar cada día durante dos semanas, y la campaña no se pone en rojo por eso.
urn:li:organization: delante.
La página de empresa necesita un permiso aparte. Publicar
en ella usa w_organization_social, que está dentro de la
Community Management API: LinkedIn la da solo a organizaciones
registradas, tras revisarla. Hasta entonces, las piezas de la página salen
en Publicar a mano. Los perfiles personales no lo necesitan.
Comprobar y errores frecuentes
| Lo que ves | Qué pasa y cómo se arregla |
|---|---|
redirect_uri does not match | La URL de retorno de LinkedIn no es idéntica a la de la tarjeta, carácter por carácter, barra final incluida. |
| El permiso caduca | LinkedIn da el permiso por 60 días. En Personas se ve hasta cuándo vale el de cada persona; se renueva volviendo a conectar. |
| «… todavía no ha conectado su LinkedIn» | Esa persona no ha abierto su enlace de conexión. Se le genera otro en Personas. |
| El enlace del artículo va en el texto | Si LinkedIn no deja poner el enlace en el primer comentario, ut-content lo añade al final del post: nunca sale sin él. |
En vídeo: conectar LinkedIn
Publica en la página de la empresa. Basta con que la autorice una persona que la administre, y no hace falta revisión de Meta mientras la app esté en modo desarrollo: los posts son normales y públicos.
Con una app propia, en Meta
-
Crear la app
En developers.facebook.com/apps, «Crear app» → caso de uso «Otro» → tipo «Empresa». En Configuración → Básica están el identificador y la clave secreta.
-
Añadir «Inicio de sesión con Facebook»
En sus ajustes, en URI de redireccionamiento de OAuth válidos, exactamente
https://content.utio.es/oauth/facebook/callback. -
Dar rol a quien va a autorizar
Necesita a la vez un rol en la app (administrador, desarrollador o tester) y ser administrador de la página con permiso para crear contenido.
-
Dejarla en modo desarrollo
No hace falta pasarla a «Activa» ni pedir acceso avanzado.
En ut-content
-
Guardar la app
Conexiones → Redes sociales → Facebook: identificador, clave secreta y URL de retorno. El identificador de configuración solo hace falta con el inicio de sesión para empresas. Guardar app.
-
Conectar la página
Conectar página: Meta pide permiso y, al volver, se elige la página de la lista. Con una sola, ni se pregunta.
-
Comprobar
Comprobar pregunta a Facebook si el permiso sigue vivo.
Comprobar y errores frecuentes
| Lo que ves | Qué pasa y cómo se arregla |
|---|---|
| La lista de páginas sale vacía | A quien autoriza le falta el rol en la app o no administra la página. Se arregla en Meta y se vuelve a conectar. |
| Deja de publicar | El token de página no caduca, pero se cae si quien autorizó cambia su contraseña, retira la app o deja de administrar la página. Se arregla con Reconectar página. |
En vídeo: conectar Facebook e Instagram
Va con la misma app de Meta y la misma página que Facebook: las imágenes de las piezas y el reel de cada campaña salen en la cuenta de Instagram enlazada a esa página.
-
Preparar la cuenta
Tiene que ser una cuenta profesional (empresa o creador) y estar enlazada a la página de Facebook. Una cuenta personal no publica por API.
-
Añadir el producto Instagram a la app
En la app de Meta, además del inicio de sesión.
-
Conectar Instagram
En Conexiones → Instagram, con Facebook ya conectado. Vuelve a autorizar pidiendo además
instagram_basiceinstagram_content_publish; en modo desarrollo los concede quien tiene rol en la app, sin revisión. -
Comprobar
Comprobar dice con qué cuenta entra ut-content. Si no la encuentra, Buscar la cuenta.
YouTube
Publica los vídeos en el canal de YouTube de la empresa (Shorts y horizontales, con subtítulos y una lista por serie), con la app de Google de ut-content. La guía completa, con lo que se hace en Google Cloud y los dos trámites de Google (verificación y auditoría), está en Configurar YouTube.
TikTok
Publica el reel de cada campaña en la cuenta de TikTok de la empresa. TikTok no lleva posts de texto: su pieza es el vídeo con su pie.
Con una app propia, en TikTok
-
Crear la app
En developers.tiktok.com, con los productos Login Kit y Content Posting API (con Direct Post).
-
Poner la URL de retorno
En Login Kit,
https://content.utio.es/oauth/tiktok/callback. -
Pedir la auditoría
Hasta que TikTok la audita, todo lo publicado por la API sale en privado («solo yo») y como mucho cinco cuentas pueden publicar en 24 horas. Se pide desde el panel de TikTok, con un vídeo del flujo: conectar la cuenta, publicar y ver el vídeo.
En ut-content
-
Guardar la app
Conexiones → TikTok: client key, client secret y URL de retorno. Guardar app.
-
Conectar la cuenta
Conectar cuenta, con la cuenta de TikTok que publica.
-
Cuando pase la auditoría
Marcar La app ya pasó la auditoría de TikTok y elegir la privacidad. Antes, solo se admite «solo yo».
En vídeo: conectar TikTok
X
Publica en la cuenta de X de la empresa los posts de cada campaña (hasta 280 caracteres, con su imagen y el enlace al artículo) y los vídeos. X no revisa la app: en cuanto la cuenta está conectada, publica.
Con la app de ut-content
- Conectar la cuenta
Conexiones → X → Conectar cuenta, y autorizar en x.com con la cuenta de la empresa.
- Encender X en el calendario
Ajustes → Calendario editorial: activa X y marca qué perfiles editoriales publican ahí.
Con una app propia, en X
- Crear la app
En console.x.com: activa OAuth 2.0, tipo Web App, permisos de lectura y escritura, y la URL de retorno
https://content.utio.es/oauth/x/callback. - Crédito
X cobra por uso: sin crédito en la consola no publica y la pieza espera con el aviso.
- Guardarla en ut-content
Conexiones → X → Usar una app propia: Client ID, Client Secret y URL de retorno. Guardar app y después Conectar cuenta.
Para dos cosas: recibir fotos, audios y anécdotas del equipo (vivencias) y mandar a cada persona el resumen de la mañana. Cada persona escribe desde el teléfono de su ficha.
Si la tarjeta dice que la empresa habla por el número único de ut-content, no hay nada que configurar. Si no, con un número propio de WhatsApp Business (Cloud API):
En Meta
-
Una app con el producto WhatsApp
En la app de Meta de la empresa, añadir WhatsApp y dar de alta el número. De ahí salen el identificador del número (Phone number ID) y el de la cuenta de WhatsApp Business.
-
Un token de usuario del sistema
En la configuración del negocio de Meta, un usuario del sistema con acceso a la app y a la cuenta de WhatsApp, y su token. No caduca.
-
La clave secreta de la app
En Configuración → Básica: con ella se firman los avisos que llegan.
-
El webhook
En WhatsApp → Configuración, la URL del webhook y el verify token que enseña la tarjeta de ut-content, y suscribir el campo
messages.
En ut-content
-
Rellenar la tarjeta
Conexiones → WhatsApp y ficheros → WhatsApp: identificador del número, token, clave secreta de la app. Guardar y comprobar.
-
Probar
Escribir «ayuda» al número desde el teléfono de tu ficha. Enviarme el resumen de hoy manda el resumen al momento.
-
El resumen de cada mañana
Se enciende en Ajustes → Calendario y publicación. Fuera de las 24 horas desde el último mensaje de la persona, WhatsApp exige una plantilla aprobada por Meta: su nombre va ahí.
En vídeo: conectar WhatsApp
WordPress
Publica una copia de cada artículo en un WordPress, con un canonical que apunta al original. Sin canonical, la copia compite con el artículo bueno.
-
Una contraseña de aplicación
En WordPress, Usuarios → Perfil → Contraseñas de aplicación. No es la contraseña de nadie y se puede revocar sola. Hace falta WordPress 5.6 o superior y un usuario con permiso para publicar.
-
Rellenar la tarjeta
Conexiones → El artículo en otros sitios → WordPress: dirección del sitio, usuario y contraseña de aplicación. Guardar y comprobar dice si ese usuario puede publicar.
En vídeo: conectar WordPress
Almacén de fotos y audios
Dónde se guardan los ficheros de las vivencias. De serie, un directorio del propio servidor de ut-content, sin nada que hacer. Si prefieres tenerlos en otro sitio:
- Bucket compatible con S3 (MinIO, S3…): endpoint, bucket, access key, secret key, región y, si quieres, una carpeta.
- WebDAV (Nextcloud…): la URL de la carpeta, el usuario y una contraseña de aplicación.
- Google Drive: el id de la carpeta (sale en su URL) y Conectar Google Drive con la cuenta dueña de la carpeta. Con app propia: una credencial OAuth de tipo «aplicación web» en Google Cloud, con la API de Drive activada y la URL de retorno
https://content.utio.es/oauth/drive/callback.
Al guardar se escribe, se lee y se borra un fichero de prueba: si falla, no se cambia nada.
En vídeo: el almacén de fotos y audios
La IA
Con lo que ut-content escribe el texto y genera las imágenes. Se conecta en Conexiones → Servicios, y qué modelo hace cada cosa se elige en Ajustes → Motor de IA.
- OpenRouter: URL
https://openrouter.ai/api/v1y una clave de API (sk-or-…) creada en openrouter.ai/keys. Al guardar se comprueba la clave y que los modelos elegidos existan. - studio: URL
https://studio.utio.io/api/v1y un token de API creado en studio, en Ajustes → Tokens de API dentro del cliente de la empresa, con los permisosai:textyai:imagey, mejor, un tope de gasto.
Con los dos conectados, en Ajustes → Motor de IA se puede marcar que use el otro si el elegido falla.
En vídeo: conectar la IA
La web (CMS)
El artículo se publica como un fichero en el repositorio de la web, en
GitLab. Se conecta una vez con un project access token del proyecto
(en GitLab, Settings → Access Tokens, rol Developer y
scope api), el proyecto y la rama en la que escribe ut-content.
ut-content se niega a escribir en una rama protegida: a la principal se llega
por merge request revisado. Qué web recibe el artículo y si publica de verdad
se decide en Ajustes → Calendario y publicación → Hasta dónde publica el
botón.
Analítica de la web
Con Umami conectado, ut-content cuenta las visitas de cada artículo y los
clics que llegan desde cada publicación, también de LinkedIn, porque el
enlace va etiquetado. Se conecta con la URL de Umami, un usuario de solo
lectura con su contraseña y el identificador del sitio (el
data-website-id del script de Umami de la web).