Google Drive + Cloudinary: LinkedIn drafts by email
You made the graphic. You saved it to Drive. And then… the post still doesn’t happen because turning “an image” into “a good LinkedIn draft” is a whole extra job.
This Drive LinkedIn automation hits social media managers hardest, but consultants and lean marketing teams feel it too. The outcome is simple: drop an image in a Google Drive folder and get an emailed LinkedIn-style draft you can publish the same day.
Below you’ll see how the workflow runs in n8n, what it automates, and what you’ll need to customize so the copy sounds like you (not a template).
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Drive + Cloudinary: LinkedIn drafts by email
flowchart LR
subgraph sg0["Google Drive Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Google Drive Trigger1", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Google Drive Download1", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Azure OpenAI Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:message-outline", form: "rounded", label: "Send email", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>upload frames to cloudinary"]
n2 --> n4
n0 --> n1
n1 --> n5
n3 -.-> n2
n5 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2 ai
class n3 aiModel
class n5 api
classDef customIcon fill:none,stroke:none
class n5 customIcon
The Problem: Turning visuals into posts is still manual
Most LinkedIn content workflows break at the handoff. Design assets sit in Google Drive, someone remembers they exist, then you copy a link, upload the image again, write a caption from scratch, and format it so it looks right on mobile. That “quick post” turns into a scattered 30-minute task, and it’s rarely just one. Multiply it by a few assets per week and you’re burning hours on steps that don’t improve the idea at all. Worse, inconsistency creeps in: different tone, different hashtags, different structure, and suddenly your feed looks like five people wrote it.
It adds up fast. Here’s where it usually breaks down.
- The image is in Drive, but you still need a public URL for email-friendly drafts and sharing.
- Writing the post happens last-minute, so the hook is weak and the CTA feels bolted on.
- Formatting gets messy, which means more edits on your phone right before publishing.
- No repeatable structure exists, so staying consistent becomes “try harder,” not a system.
The Solution: Image-to-LinkedIn drafts sent to your inbox
This n8n workflow watches a specific Google Drive folder for new images meant for LinkedIn. When a new file appears, it pulls the image down, uploads it to Cloudinary so it can be hosted as a clean public link, and then sends that link into an Azure OpenAI GPT-4o prompt designed for LinkedIn-style writing. The AI doesn’t just spit out a caption. It generates a full draft package: headline, overview, key points, ideal audience, tech stack (if relevant), hashtags, and a complete HTML email body that renders nicely in Gmail and Outlook. Finally, n8n emails the draft to you so publishing becomes a quick review and paste, not a brand-new writing session.
The workflow starts with a Google Drive change trigger. Cloudinary turns the image into an email-friendly URL, then GPT-4o generates the post and n8n sends it as a formatted HTML email. You wake up to drafts instead of a to-do list.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you create 5 LinkedIn graphics each week. Manually, you might spend about 10 minutes uploading or re-linking the image, then another 20 minutes writing and formatting a post, so roughly 30 minutes each time (about 2.5 hours a week). With this workflow, you drop the image into the Drive folder and wait for the email draft. Your “work” becomes a quick review and minor edits, maybe 5–10 minutes per post, which is about 40 minutes a week instead of a whole afternoon.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Drive to store and trigger on new images.
- Cloudinary to host images as public URLs.
- Azure OpenAI API key (get it from Azure OpenAI Studio).
Skill level: Intermediate. You’ll connect accounts, paste an API key, and tweak the AI prompt to match your brand voice.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new image lands in the right Drive folder. The Google Drive trigger watches one folder you choose, so random uploads elsewhere won’t spam your inbox.
The workflow pulls the file for processing. n8n retrieves the new Drive image so it can be forwarded to other services without you downloading anything locally.
Cloudinary creates a clean public link. An HTTP request uploads the image to Cloudinary, which returns a URL that can be embedded in an email and referenced by the AI model.
GPT-4o generates the LinkedIn draft and the email body. The LLM chain sends the image URL to Azure OpenAI and returns headline, sections, hashtags, and a ready-to-send HTML email layout.
You can easily modify the prompt and email template to match your tone, add a CTA, or enforce a house style (like “short paragraphs only”). See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Drive Change Trigger
Set the workflow to start when a Google Drive change is detected.
- Add and open Drive Change Trigger.
- Credential Required: Connect your Google Drive credentials.
- Choose the Drive or folder you want to monitor for changes.
- Save the trigger configuration.
Step 2: Connect Google Drive Retrieval
Retrieve the file content that triggered the workflow.
- Add Retrieve Drive File and connect it to Drive Change Trigger.
- Credential Required: Connect your Google Drive credentials.
- Configure the file selection to use the ID from the trigger output.
Step 3: Set Up Media Upload to Cloudinary
Upload the file to Cloudinary before passing it to the AI chain.
- Add Cloudinary Frame Upload and connect it after Retrieve Drive File.
- Set the HTTP method, URL, and headers required by your Cloudinary upload endpoint.
- Credential Required: Connect your HTTP Request credentials (or configure auth headers for Cloudinary).
Step 4: Set Up AI Processing
Use Azure OpenAI to process the uploaded file information and prepare email content.
- Add LLM Processing Chain and connect it after Cloudinary Frame Upload.
- Open Azure Chat Model and configure your Azure OpenAI deployment settings.
- Credential Required: Connect your Azure OpenAI credentials on Azure Chat Model.
- Ensure Azure Chat Model is connected as the language model for LLM Processing Chain.
Step 5: Configure the Email Output
Send an email alert based on the AI output.
- Add Dispatch Email Alert and connect it to LLM Processing Chain.
- Credential Required: Connect your Email (SMTP) credentials.
- Set the recipient, subject, and body fields using the processed output from the AI chain.
Step 6: Test and Activate Your Workflow
Validate the workflow end-to-end before turning it on.
- Click Execute Workflow and trigger a file change in Google Drive.
- Confirm Retrieve Drive File and Cloudinary Frame Upload both return successful responses.
- Verify that LLM Processing Chain produces text output and Dispatch Email Alert sends an email.
- Once confirmed, toggle the workflow to Active for production use.
Common Gotchas
- Google Drive permissions can block the trigger or file download. If it stops firing, check the connected Google account access and the specific folder permissions first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Azure OpenAI and Cloudinary both rely on API keys and account limits. If output suddenly fails, look at your Azure deployment status and Cloudinary usage dashboard, then update credentials in n8n.
Frequently Asked Questions
About 30 minutes if you already have your accounts and API keys.
No coding required. You’ll connect Google Drive, Cloudinary, and Azure OpenAI, then adjust the prompt text for your style.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Azure OpenAI usage costs (usually a few cents per draft) and any Cloudinary plan limits.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Update the LLM prompt inside the processing chain to enforce your structure (shorter paragraphs, specific CTA, banned buzzwords), then tweak the HTML in the email step so it matches your preferred layout. Common changes include switching from “headline + overview” to a story format, adding a “comment keyword” CTA, and inserting a standard disclaimer or link block.
Usually it’s permissions or an expired Google login token. Reconnect Google Drive in n8n, confirm the watched folder still exists, and make sure the account has access to download files from that location.
On n8n Cloud Starter, you can run a few thousand workflow executions per month, and each new image is typically one execution. If you self-host, there’s no execution limit, but you’re still constrained by your server resources and API rate limits from Azure OpenAI and Cloudinary. In practice, most small teams can run dozens of images a day comfortably if the AI and email steps are configured correctly. If you plan to process large batches at once, add basic throttling and keep an eye on API quotas.
Often, yes, because this workflow benefits from more flexible logic and an LLM chain that’s easier to control in n8n. Zapier or Make can work, but complex AI prompting plus HTML email formatting tends to get clunky (and pricey) as you iterate. n8n also gives you a self-hosted path when volume grows. If you only need “new file in Drive → send an email,” keep it simple and use whatever tool you already pay for. Talk to an automation expert if you’re not sure which fits.
Once this is running, your Drive folder becomes a content pipeline instead of a storage bin. Set it up, tune the prompt to your voice, and let drafts show up on their own.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.