Social Media Autoposter - Workflow Shows Success But Posts Not Publishing (Loop Data Flow Issue)

Problem Summary

My automated social media posting workflow executes successfully (green checkmarks, no errors in logs) but zero posts are actually publishing to LinkedIn, Facebook, or Instagram. The workflow has completed 183 “successful” executions, yet all posts remain with status=“Scheduled” in my Base44 database and nothing appears on social media platforms.

Workflow Setup

Purpose: Automated social media posting system that retrieves scheduled posts from Base44 database, filters by date/time, routes to appropriate platforms, and publishes content automatically.

Key Components:

  • Schedule trigger: Every 30 minutes (7am-8pm EST)
  • Base44 API: GET posts from SocialPost entity
  • JavaScript filter: Filters posts by status=“Scheduled”, scheduled_date=today, scheduled_time<=current_time
  • Loop structure: “Process One at a Time” loop
  • Expand to Platforms: Creates 3 items (LinkedIn, Facebook, Instagram) with targetPlatform field
  • Route by Platform: Switch/Expression node routes based on targetPlatform
  • Platform-specific posting nodes: LinkedIn Create Post, Facebook Create Post, Instagram Publish

The Core Issue

Symptoms:

  1. Workflow shows “Success” status in execution logs :white_check_mark:
  2. No error messages in recent executions
  3. Posts remain with status=“Scheduled” in Base44 (never change to “Published”)
  4. Zero posts published across all platforms
  5. Fast execution times (200-350ms) suggesting workflow exits early

What I’ve Already Fixed

:white_check_mark: Base44 API query parameter filtering (now filtering in JavaScript)
:white_check_mark: Status field mismatch between UI and database
:white_check_mark: Time format conversion (12-hour to 24-hour)
:white_check_mark: Timezone handling (EST conversion)
:white_check_mark: JavaScript syntax errors in filter code

Data Flow Observation

When testing individual nodes:

  • “Expand to Platforms” shows “No input data” when tested individually
  • “Route by Platform” shows “No output data” when tested individually
  • Posting nodes (LinkedIn/Facebook/Instagram) show “No input data”

But when running the full workflow, it shows “Success” without actually posting.

Route by Platform Configuration

Expression mode:

{{ $json.targetPlatform === 'LinkedIn' ? 0 : $json.targetPlatform === 'Facebook' ? 1 : $json.targetPlatform === 'Instagram' ? 2 : 3 }}

Routes to:

  • Output 0 → LinkedIn path
  • Output 1 → Facebook path
  • Output 2 → Instagram path
  • Output 3 → Default

Expand to Platforms Code

const post = $input.item.json;
let platforms = [];

if (post.platform.includes('All')) {
  platforms = ['LinkedIn', 'Facebook', 'Instagram'];
} else {
  if (post.platform.includes('LinkedIn')) platforms.push('LinkedIn');
  if (post.platform.includes('Facebook')) platforms.push('Facebook');
  if (post.platform.includes('Instagram')) platforms.push('Instagram');
}

return platforms.map(p => {
  let caption;
  
  if (p === 'LinkedIn') {
    caption = post.caption_linkedin || post.caption_master || post.caption || '';
  } else if (p === 'Facebook') {
    caption = post.caption_facebook || post.caption_master || post.caption || '';
  } else {
    caption = post.caption_instagram || post.caption_master || post.caption || '';
  }
  
  return {
    json: {
      ...post,
      targetPlatform: p,
      caption: caption
    }
  };
});

Questions

  1. Loop Context: In a “Process One at a Time” loop, why would downstream nodes show “No input data” when tested individually if the full workflow succeeds?

  2. Route by Platform: Is my expression syntax correct for routing based on the targetPlatform field? Should I use a different approach (Switch node vs IF nodes)?

  3. Silent Failures: Why would a workflow show “Succeeded” status but skip posting nodes without error messages? How can I enable more detailed logging?

  4. Data Flow: How can I verify that data is actually flowing through “Expand to Platforms” → “Route by Platform” → posting nodes?

Environment

  • Timezone: EST/New York (server may be Europe/Berlin)
  • External Services: Base44 API, LinkedIn API, Facebook API, Instagram API
  • Workflow Schedule: Every 30 minutes, 7am-8pm EST
  • Expected: 9-12 posts per day across 3 platforms

What I Need

  1. Workflow audit to identify why posting nodes aren’t receiving data
  2. Execution analysis of successful runs to see actual data flow
  3. Guidance on testing nodes within loop context
  4. Best practices for error handling and debugging in complex loop workflows

This is a production automation critical to our business operations. Any assistance would be greatly appreciated!

Would you consider sharing the full workflow with us to receive best possible assistance?
Also, what is the role of Base44 in your setup? Is it providing a frontend to put in the details of the posts?

Also, if you’re interested in a one on one call, send me a DM. I’ve built several content automation workflows in the past.

183 ejecuciones verdes y nada en vivo casi siempre significa que los nodos de publicación nunca vieron un elemento. no es LinkedIn comiendo posts. ejecución vacía, aún así éxito.

fija una ejecución.

mira los conteos de elementos después de Base44, luego después del filtro. esas ejecuciones de 200-350ms sobresalen. si ambos conteos son cero, ni siquiera abriría los logs de oauth todavía. nada llegó a las apis.

mi apuesta es el filtro. ortografía de estado, zona horaria de fecha, o la comparación de tiempo. un espacio al final en Scheduled me atrapó una vez. me tomó vergonzosamente largo.

si el filtro escupe elementos, solo entonces usa Expand to Platforms. no pruebes ese nodo solo desde el medio del canvas. se ve vacío cuando nada llegó. fija una fila real programada y busca 3 elementos con targetPlatform configurado.

antes del switch, vuelca targetPlatform en un Set. linkedin vs LinkedIn lo vuelca todo al default. trampa fácil. yo asumí que era oauth también la primera vez.

solo después de que un elemento llegue claramente a un nodo create-post leería el cuerpo de la respuesta. verde solo puede significar que la solicitud fue aceptada. escribe id + respuesta cruda de vuelta a Base44, luego cambia Published. ¿filas atrapadas en Scheduled para siempre? publish probablemente nunca se ejecutó.

una cosa más: medios aún públicos en el momento del disparo. urls firmadas que funcionan en la programación y mueren por la tarde son molestas.

fija el filtro primero. en serio. no toques oauth hasta que el filtro funcione.

una vez que una red realmente publica y escribe estado, la expansión multi-plataforma se vuelve mucho menos maldita. si después el dolor es una fila a un montón de redes con reintentos, lo que funcionó para mí es intake en n8n y blotato en el último salto. pero no es el bug que tienes hoy.

El tiempo de ejecución de 200-350ms es la respuesta, y vale la pena explicar por qué: nada más adelante se ejecutó. En n8n un nodo que recibe cero elementos no genera error, simplemente no se ejecuta, y la ejecución finaliza como Éxito. 183 ejecuciones en verde que no publicaron nada significa que algo anterior está emitiendo cero elementos y todo lo que viene después se omite silenciosamente.

Así que no depures los nodos de publicación. Encuentra dónde mueren los elementos, en este orden.

  1. Abre una de las ejecuciones exitosas y lee el conteo de elementos en cada nodo, de izquierda a derecha. El primer nodo con 0 elementos de salida es tu error; todo lo que está a su derecha es inocente. Un minuto, y las adivinanzas terminan.
  2. Comprueba el cableado del bucle, porque tus síntomas apuntan directamente a él. Split In Batches („Process One at a Time