Weekly branded LinkedIn tip cards from a Google Sheet

Every Monday morning, turn the next row of your tips spreadsheet into a branded image post on LinkedIn and mark it as sent.

Agentic Task
IdeogramGoogle SheetsLinkedInMarketingContent Generation
PromptCreate

Every Monday at 8am in my local timezone, publish a branded tip card to LinkedIn using the next tip in my Google Sheet. The trigger is a cron schedule.

Read from the tips tab of the sheet with Google Sheets Get Values. Each row has these columns: headline, sub-copy, caption, posted (empty when unposted), and post URL. Pick the first row where the posted column is empty. If that row's caption column is also empty, stop the run without posting anything so I can fill it in later without losing the row.

Generate a square social card with Ideogram Generate (Ideogram 4.0). Pass a text_prompt that renders the tip's headline as the main poster text and the sub-copy underneath in a clean, brand-styled layout on a solid background. Request a 1:1 aspect ratio. Ideogram's in-image typography is the whole reason this workflow uses it, so the text should be baked into the image itself, not overlaid afterwards. Download the returned image bytes since the Ideogram URLs expire.

If the response comes back with is_image_safe = false, retry once with a simpler prompt that drops adjectives and brand-jargon and just asks for the headline and sub-copy on a plain colored background. If the retry is still flagged unsafe, stop and leave the row untouched so I can look at it.

Once you have a valid image, post it to LinkedIn with Create Post as an image post. Use the caption column from the same row verbatim as the post commentary.

After LinkedIn returns the post URN, build the public post URL from it and write today's date into the posted column and the URL into the post URL column for that row with Google Sheets Update Values. That is how the workflow guarantees the same tip is never posted twice.

Additional information

What does this prompt do?
  • Runs every Monday at 8am and picks the next unposted tip from your Google Sheet.
  • Generates a square, on-brand social card with the tip headline baked right into the image.
  • Posts the card to LinkedIn with a short caption pulled from the same row.
  • Marks the tip as posted so it never repeats, and skips any row whose caption is still empty.
What do I need to use this?
  • A Google Sheet with a tips tab (columns for headline, sub-copy, caption, posted, and post URL).
  • An Ideogram account with API credits for image generation.
  • A LinkedIn account with permission to post on the profile or page you want to use.
How can I customize it?
  • Change the day and time to match your own posting cadence.
  • Rewrite the image prompt template so the cards match your brand colors, fonts, and layout.
  • Add columns like theme or campaign and tell the workflow to filter or rotate through them.

Frequently asked questions

Do I have to write the LinkedIn caption ahead of time?
Yes. Fill in the caption column for each row you want posted. Rows without a caption are skipped, so you can queue drafts without them going live before you're ready.
What if Ideogram rejects the image on safety grounds?
The workflow catches the safety flag, simplifies the prompt, and tries once more. If it still comes back unsafe, the row is left unposted so you can review it.
Will the same tip ever get posted twice?
No. After a successful post, the workflow writes the post link and today's date back to the row, and the next run only picks rows where the posted column is still empty.
Can I post to a LinkedIn company page instead of my personal profile?
Yes. Point the LinkedIn step at your company page during setup and grant the workflow the right permissions for that page.
Do the tips have to be short?
Keep the headline short and punchy since it will be rendered inside the image. The sub-copy has a bit more room, and the caption can be as long as a normal LinkedIn post.

Related templates

Auto-refresh a Google Sheet from Databricks every night

Every night we run your saved Databricks query and refresh a Google Sheet with the results, so your team reads the latest numbers without a login.

Databricks
Google Sheets
Deterministic Code
Log daily football results and league standings to Sheets

Every morning, automatically record yesterday's match results and each league's latest table into a spreadsheet you can chart or pivot.

API-Sports
Google Sheets
Deterministic Code
Daily IP reputation screening with Slack threat alerts

Every morning we check your list of IP addresses for abusive activity, update your spreadsheet, and alert your team only about the risky ones.

AbuseIPDB
Google Sheets
Slack
Agentic Task
Log every new Azure DevOps work item to Google Sheets

Automatically add every new Azure DevOps work item to a Google Sheets tracker so your team can filter, sort, and report without opening Azure DevOps.

Azure DevOps
Google Sheets
Deterministic Code
Daily data breach monitoring for key email accounts

Check key email accounts against known data breaches every weekday, log every exposure to a spreadsheet, and get a Slack alert when a new breach shows up.

Have I Been Pwned
Google Sheets
Slack Bot
Deterministic Code
Morning team travel briefing with live flight alerts

Every weekday morning, your team gets one Slack briefing on who's flying today, their live flight status, and any delays or cancellations to act on.

AviationStack
Google Sheets
Slack
Agentic Task

Show up on LinkedIn every Monday without the design scramble.

Queue a month of tips in a spreadsheet and let this workflow ship a branded card every week.