Skip to content
FlowHubFluxonLab
C
PostgreSQLfree

Publish scheduled LinkedIn posts from Twenty CRM via Unipile and SharePoint

by Swapnil Mandloiadapted from n8n official workflow galleryUpdated Aug 2026
RequiresCCodeHTTP RequestHTTP RequestPostgresPostgres
Share Post Share
MaManual Trigger - Test RunManual Trigger …Fetch Scheduled Posts (Twenty CRM)Fetch Scheduled…ScCron - Every 5 MinutesCron - Every 5 …IfCheck Attachment Present?Check Attachmen…CoBuild SharePoint ShareIdBuild SharePoin…HRSharePoint - Resolve Drive ItemSharePoint - Re…HRSharePoint - Download Attachment (Binary)SharePoint - Do…HRUnipile - Create Post (With Attachment)Unipile - Creat…HRUnipile - Get Post DetailsUnipile - Get P…Mark Post as POSTED (Twenty CRM Update)Mark Post as PO…SIProcess Posts (Split in Batches)Process Posts (…HRUnipile - Create Post (Text Only)Unipile - Creat…12345678910111213
1/5
STEPS · 13
Run manually by an operator

Quick overview Automate your LinkedIn content calendar. This workflow fetches scheduled posts from a PostgreSQL database (Twenty CRM), downloads attached media from SharePoint, and publishes them seamlessly to LinkedIn using Unipile. How it works A Schedule Trigger (Cron) fires every 5 minutes to check for pending social media posts A PostgreSQL node queries the database to fetch posts marked as 'SCHEDULED' where the scheduled time has passed. A Split In Batches node loops through the fetched posts one by one to prevent API concurrency issues. An IF node checks if there is a SharePoint attachment URL included in the database record. If an attachment exists, Microsoft Graph API nodes resolve the SharePoint Drive Item and download the image as a binary file HTTP Request nodes send the text (and binary attachment, if any) to Unipile's API to natively publish the LinkedIn post. A final PostgreSQL node updates the CRM record to 'POSTED' and saves the live LinkedIn post URL back to the database. Setup Add your PostgreSQL credentials and verify that the SQL query matches your Twenty CRM table and schema names.

Tags

n8nreference-onlypostgres
Connects
CCodeWHTTP RequestpostgresPostgres
CategoryPostgreSQL
Triggermanual
Complexitycomplex
Nodes12
AddedJun 30, 2026

Related workflows

See all PostgreSQL
CWpostgresyoutube
free

Youtube Outlier Detector (Find trending content based on your competitors)

Video explanation This n8n workflow helps you identify trending videos within your niche by detecting outlier videos that significantly outperform a channel's average views. It automates the process of monitoring competitor channels, saving time and streamlining content research. Included in the Workflow Automated Competitor Video Tracking Monitors videos from specified competitor channels, fetching data directly from the YouTube API. Outlier Detection Based on Channel Averages Compares each video’s performance against the channel’s historical average to identify significant spikes in viewership. Historical Video Data Management Stores video statistics in a PostgreSQL database, allowing the workflow to only fetch new videos and optimize API usage. Short Video Filtering Automatically removes short videos based on duration thresholds. Flexible Video Retrieval Fetches up to 3 months of historical data on the first run and only new videos on subsequent runs. PostgreSQL Database Integration Includes SQL queries for database setup, video insertion, and performance analysis. Configurable Outlier Threshold Focuses on videos published within the last two weeks with view counts at least twic

by Leonardo Grigorio
CWpostgres
free

🤖 Advanced Slackbot with n8n

Use case Slackbots are super powerful. At n8n, we have been using them to get a lot done.. But it can become hard to manage and maintain many different operations that a workflow can do. This is the base workflow we use for our most powerful internal Slackbots. They handle a lot from running e2e tests for Github branch to deleting a user. By splitting the workflow into many subworkflows, we are able to handle each command seperately, making it easier to debug as well as support new usecases. In this template, you can find eveything to setup your own Slackbot (and I made it simple, there's only one node to configure 😉). After that, you need to build your commands directly. This bot can create a new thread on an alerts channel and respond there. Or reply directly to the user. It responds for help request to return a help page. It automatically handles unknown commands. It also supports flags and environment variables. For example /cloudbot-test info mutasem --full-info -e env=prod would give you the following info, when calling subworkflow. How to setup Add Slack command and point it up to the webhook. For example. Add the following to the Set config node alerts_channel with alerts

by Mutasem
CWpostgres
free

Enrich up to 1500 emails per hour with Dropcontact batch requests

The template allows to make Dropcontact batch requests up to 250 requests every 10 minutes (1500/hour). Valuable if high volume email enrichment is expected. Dropcontact will look for email & basic email qualification if first_name, last_name, company_name is provided. +++++++++++++++++++++++++++++++++++++++++ Step 1: Node "Profiles Query" Connect your own source (Airtable, Google Sheets, Supabase,...) the template is using Postgres by default. Note I: Be careful your source is only returning a maximum of 250 items. Note II: The next node uses the next variables, make sure you can map these from your source file: first_name last_name website (company_name would work too) full_name (see note) Note III: This template is using the Dropcontact Batch API, which works in a POST & GET setup. Not a GET request only to retrieve data, as Dropcontact needs to process the batch data load properly. +++++++++++++++++++++++++++++++++++++++++ Step 2: Node "Data Transformation" Will transform the input variables in the proper json format. This json format is expected from the Dropcontact API to make a batch request. "full_name" is being used as a custom identifier to update the returned email to th

by victor de coster