---
title: "11.35 Activity: Publish LinkedIn Post"
description: Contactless; needs LinkedIn connected (15. LinkedIn) and permission to publish LinkedIn content.
url: "https://peikly.com/docs/activity-publish-linkedin-post/"
updated: "2026-10-13"
category: Automation Workflows
tags:
  - Manual sync
---

# 11.35 Activity: Publish LinkedIn Post

Contactless; needs LinkedIn connected ([15. LinkedIn](/docs/linkedin/)) and permission to publish LinkedIn content.

- **Publish as**: a Company Page or the connected member's personal profile.
- **Post text**: up to 3,000 characters. Placeholders such as `{{blog.title}}` are filled from the trigger ([11.23](/docs/placeholders-contact-and-trigger-data/)).
- **Media** (optional): one image, one MP4 video, or one PDF, PowerPoint or Word document from the Media Library.
- The step **queues** the post; LinkedIn publishes it within a minute or two and the workflow's owner is notified when it is live, or why it was not. It counts towards your plan's LinkedIn publishing limits.
- Typical use: **Post Published** trigger → share the new blog post on your Company Page.

Polls and article link cards are created in the Publishing Wizard, not from a workflow.

---

## Errors When Saving a Workflow

| Message | Why It Happens | How to Fix |
| --- | --- | --- |
| `Add at least one step.` | The canvas has no steps | Add and connect at least one step |
| `Maximum 50 steps allowed.` | Too many steps | Split it into two workflows |
| `This workflow has a loop…` | A connection leads back to an earlier step | Remove the backward connection ([11.5](/docs/how-steps-connect-order-branches-and-ending/)) |
| `N step(s) are not connected to the flow and would never run…` | A step has no incoming connection from Start or an earlier step | Connect it, or delete it |
| `Step N: it continues to step M, which is not a later step in this workflow.` | A connection points backwards or to a missing step (usually from editing outside the designer) | Reopen the workflow in the designer and reconnect the step |
| `Step N (Unsubscribe Contact): "Trigger Channel" only works with a Message Received trigger…` | Unsubscribe uses Trigger Channel on a trigger without an incoming message | Choose WhatsApp, Email or All |
| `… requires a contact, but … workflows are contactless.` | A contact activity on a contactless trigger | Remove the step or change the trigger |
| `… requires the Automation Advanced subscription feature.` | Advanced activity without the feature | Upgrade, or remove the step |
| `Choose an approved WhatsApp template.` / `Enter the plain text message body.` | Send WhatsApp is incomplete | Pick a template or write the text |
| `Choose an email template.` / `Enter a subject for the custom message.` | Send Email is incomplete | Pick a template or fill in the subject and body |
| `Choose a match mode.` / `Enter a comparison value.` | A condition is incomplete | Fill in the condition settings |
| `Scheduled workflows are available only on paid subscription plans.` | Free plan | Upgrade, then save again |
| `Select a valid schedule timezone.` / `Select at least one weekday for weekly schedules.` / `Monthly schedules must use a day between 1 and 31.` / `Schedule end date and time must be after the schedule start.` | Schedule settings incomplete | Correct the schedule ([11.9](/docs/scheduled-trigger-settings/)) |
| Feature not available | Automation isn't in your plan | Upgrade to a plan with Automation Workflows |

## Errors While a Workflow Runs

| Message (in execution history) | Why It Happens | How to Fix |
| --- | --- | --- |
| `… requires a contact context. Add an 'Add To Contacts' step before this one…` | The run has no contact (usually a WhatsApp message from a new number) | Add **Add/Upsert Contact** as the first step |
| `Not sent: the WhatsApp customer service window is closed…` | Plain-text WhatsApp sent more than 24 hours after the contact's last message | Use a template, or keep plain text for direct replies |
| `Not sent: the contact has opted out of WhatsApp messages.` | The contact unsubscribed | Expected; don't message them |
| `Selected WhatsApp template was not found or not approved.` | Template deleted, paused or rejected | Choose an approved template |
| `No active WhatsApp sending phone is available…` | The sending number is inactive or disconnected | Check [9.1 Phone Numbers](/docs/peikly-whatsapp-setup/) |
| `Contact does not have an email address.` | Send Email to a contact without email | Add a **Has Email** check before it |
| `No active email mailbox is available for this workflow step.` | Auto mailbox found nothing | Set **Channel** to **Specific mailbox** |
| `Could not resolve a trigger channel to unsubscribe from…` | Unsubscribe on Trigger Channel without a message trigger | Choose WhatsApp, Email or All |
| `External integration event does not contain enough customer data…` | Store event without customer details | Send customer data, or use a contactless trigger |
| `Start Email Campaign requires at least one existing broadcast…` | The campaign has never had a broadcast | Create one broadcast in the campaign first |
| `Workflow automatically stopped after N consecutive failed instances.` | Too many failures in a row | Fix the cause, then save and publish ([11.6](/docs/on-exception-and-automatic-stop/)) |

## Diagnostic Flow: Why a Workflow Did Not Trigger

1. Is the workflow **Active** on the **Workflow List**? Draft, Paused or stopped workflows don't run.
2. Was the latest change saved with **Publish this version now**? Otherwise the old version (and trigger) is still the one running.
3. Does the trigger match the real event? For example, **Message Received via Email** only fires for senders who are already contacts.
4. **Triggered from Broadcast:** is the workflow attached to the broadcast under **Automation**?
5. **Scheduled:** are the time zone, start/end and weekday settings right, and is now inside the schedule window?
6. **Store events:** does [21. External Integrations](/docs/external-integrations-api-guide/) show the event as received? Do the trigger filters match its provider and type?
7. Did it start but end immediately? Open **Last 10 executions**. A run that ended after a FALSE condition did trigger. The condition simply didn't match.

## Diagnostic Flow: Why an Execution Failed

1. Open **Last 10 executions** and read the failed step's message.
2. Look the message up in **Errors While a Workflow Runs** above.
3. Fix the dependency: a contact step needs **Add/Upsert Contact** first; WhatsApp needs an approved template or an open 24-hour window; email needs an address and a mailbox.
4. Retry the run ([11.32](/docs/retry-a-failed-execution/)). Republish if you changed the workflow.

## What Happens If a Step Fails

- With **On exception** = **Stop workflow and keep current state**, the run stops on that step with status **Failed**. Earlier steps stay done and aren't repeated on retry.
- With **Go to next step**, the failure is logged as skipped and the run continues.
- Failed runs add to the failure streak, and enough in a row stop the workflow ([11.6](/docs/on-exception-and-automatic-stop/)).
- Other runs of the same workflow carry on independently.

## Best Practices

- Name workflows clearly: `WhatsApp: Website enquiries auto-reply`, not `Workflow 1`.
- Keep one workflow per trigger and purpose. Combine overlapping auto-replies into one workflow with conditions.
- Test with a real message from your own phone before telling customers about a keyword.
- Review **Last 10 executions** after the first day live.
- Deactivate workflows you no longer need instead of deleting them, so their history stays available.
