Post new WordPress articles to LinkedIn as branded Canva images
Every hour, turn each newly published blog post into an on-brand Canva graphic and share it on your LinkedIn company page with an AI-written caption.
Every hour, find newly published articles on my WordPress site and turn each one into a branded Canva social image that gets posted to my LinkedIn company page.
Trigger: cron every hour.
Step 1 — Find new posts. Use WordPress List Posts with status=publish and after=<last successful run timestamp> to pull only articles published since the workflow last ran. Order by date ascending so older posts publish first. If no new posts are found, exit cleanly.
Step 2 — For each new post, generate the graphic in Canva:
2a. Pull the featured image into Canva with Canva Upload Asset from URL, passing the post's featured_media source URL. Poll the returned asset upload job until status is success and capture the asset ID.
2b. If the user configured a Canva brand template, call Canva Autofill Brand Template with the brand template ID and a data payload mapping the template's text fields to the post title and excerpt, and its image field to the uploaded asset ID. Poll the autofill job until it terminates. Note: Autofill Brand Template requires a Canva Enterprise plan.
2c. Fallback for Free and Pro plans (or when no brand template is configured): call Canva Create Design with a preset design type (e.g. InstagramPost or LinkedInPost) and the uploaded asset ID as the inserted image. This produces a plain design without the branded overlay text, so surface a note to the user in the workflow inputs that Enterprise unlocks the fully branded output.
2d. Export the design as PNG with Canva Export Design and poll the export job until it returns a download URL. Important: Canva job download URLs expire after 24 hours, so the LinkedIn post must be created in the same workflow run — do not persist the URL for later use.
Step 3 — Draft the LinkedIn caption. Take the post title, excerpt, and public URL and write a company-page caption: open with a short hook (one line), give a two or three sentence takeaway drawn from the excerpt, close with a call to read the full article and include the post URL. Respect the caption style guidance the user provided at setup (voice, tone, hashtag rules). Do not use em dashes.
Step 4 — Publish to LinkedIn. Call LinkedIn Create Post as an image post: author = the LinkedIn organization URN the user configured, media = the exported PNG (fetch the Canva download URL bytes and upload through LinkedIn's image flow inside Create Post), commentary = the drafted caption. Confirm the post URN returned in the x-restli-id header.
Step 5 — Record the published-post ID and its timestamp so the next hourly run can filter to posts newer than the last one processed.
Author should let the user pick, at setup:
- the WordPress site (credential)
- the Canva brand template ID (Enterprise) OR a preset design type for the fallback path
- the LinkedIn organization URN (the company page to post from)
- optional caption style guidance (voice, tone, hashtag rules, whether to tag anyone)
Nuance to bake in: Canva async jobs (asset upload, autofill, export) return a job envelope with status=in_progress and transition to success or failed — poll each one before using the result. Job-level failures come back as 2xx with status=failed, not HTTP errors, so check both layers. Skip posts that have no featured image if the fallback preset requires one, or use a solid-color background variant. Do not re-share posts from before the workflow was first turned on — seed the last-run timestamp to now at first launch.
Additional information
What does this prompt do?
- Watches your WordPress site every hour and picks up every newly published article
- Pulls each post's featured image into Canva and drops the title and excerpt into your brand template to render an on-brand social graphic
- Falls back to a Canva preset design (Instagram Post, LinkedIn Post, and so on) when a brand template is not available
- Writes a LinkedIn caption from the excerpt with a hook and the article link, then publishes an image post to your company page automatically
What do I need to use this?
- A WordPress site you can log in to (login and application password)
- A connected Canva account. The Enterprise plan unlocks brand templates; Free and Pro accounts can still use the preset design fallback
- Admin access to the LinkedIn company page you want to post from
- Optional: the ID of a Canva brand template you have already set up with a title text field, excerpt text field, and image field
How can I customize it?
- Point it at a specific Canva brand template, or pick a preset like Instagram Post or LinkedIn Post for the fallback path
- Change the schedule to run every 15 minutes, hourly, or once a day depending on how often you publish
- Give the caption writer style guidance (punchy, thought leadership, casual, hashtag rules, whether to tag anyone)
- Filter to only certain WordPress categories or tags if you only want some posts syndicated
Frequently asked questions
Do I need Canva Enterprise for this to work?
Which LinkedIn account does it post to?
Will it re-share posts that were already published before I turned this on?
What happens if a post does not have a featured image?
Can I change the image size or aspect ratio?
Related templates
Stop hand-designing every social share.
Turn each new blog post into a ready-to-post LinkedIn image in one hop, on brand, with no afternoon spent in Canva.