n8n Content Machine manual
Generate three social drafts from one news item and place them in a Google Sheets editorial calendar for manual review.
Who it is for: It is for people who use n8n and want to prepare a starting point for social content from a news item. You need to be able to manage a NewsAPI account, an OpenAI account, and a Google Sheets spreadsheet.
Setup time: First setup: allow time to connect the three services and check a test run.
What it does
- Starts the flow with the Daily Trigger node, set to a one-day interval.
- Calls the NewsAPI top-headlines endpoint in the Fetch Trending News node.
- Uses a category parameter set to technology and a language parameter set to it in the Italian file or en in the English variant.
- Passes the title of the first returned item, articles[0].title, to the OpenAI: Genera 3 Bozze node.
- Requests from the gpt-4o-mini model a JSON array with three objects for LinkedIn, X, and Instagram.
- Turns the three drafts into three items with the fields platform, post, generatedAt, and reviewStatus.
- Appends the items to the Google Sheets tab named Content Calendar using automatic column mapping.
What it does not do
- It does not publish posts, images, or videos to social networks.
- It does not open sessions on LinkedIn, X, or Instagram.
- It does not automatically verify the reliability, rights, or accuracy of the news item used as a prompt.
- It does not select a news item other than the first one returned in the NewsAPI response.
- It does not approve drafts for you or guarantee that they are accurate or suitable for publication.
Requirements
- n8n instance: You need n8n Cloud or a self-hosted n8n installation where you can import and run the workflow.
- NewsAPI account and API key: You need a valid NewsAPI key to place in the apiKey parameter of Fetch Trending News. The service may have a paid plan; check the provider terms and price list.
- OpenAI account and n8n credentials: The OpenAI: Genera 3 Bozze node uses the gpt-4o-mini model. Connect n8n to OpenAI credentials from your own account; usage may carry provider-based charges.
- Google account and Google Sheets credentials in n8n: You need an account with access to a Google Sheets spreadsheet and Google Sheets credentials connected in n8n.
- Google Sheets spreadsheet: Create or select a spreadsheet containing a tab named exactly Content Calendar. For automatic mapping, prepare headers matching the produced data: platform, post, generatedAt, and reviewStatus.
- Browser and service access: You need a browser to use n8n and sufficient permission to edit the selected Google spreadsheet.
Step-by-step setup
- Download and keep the ZIP. Download the purchased archive and extract it into a folder you will use for import. Do not alter the original files before you have completed a successful test. The package contains two workflow JSON files and three Markdown guides.
- Choose the language variant. For Italian news and an Italian OpenAI instruction, choose n8n-content-automation.json. For English news and an English OpenAI instruction, choose n8n-content-automation.en.json. Even in the English variant, the visible node labels and the Content Calendar tab name remain Italian.
- Prepare the destination spreadsheet. In your Google account, create or identify a Google Sheets spreadsheet. Inside it, create a tab named exactly Content Calendar. Add a header row with the four fields produced by the Code node so automatic mapping can match the rows.
- Copy the spreadsheet ID. Open the Google Sheets file and copy its identifier from the URL. You will use it to replace the placeholder value in the documentId field of Salva Content Calendar. Keep spreadsheet access private as appropriate for your organization.
- Import the workflow into n8n. In your n8n instance, use the standard path Workflows, then Import from File. Select the JSON file for the variant you chose. After import, check that the sequence is Daily Trigger, Fetch Trending News, OpenAI: Genera 3 Bozze, Valida e Prepara Bozze, and Salva Content Calendar.
- Configure NewsAPI. Open Fetch Trending News. Replace the apiKey query-item placeholder with your NewsAPI key. Check category and language: in the Italian file they are technology and it; in the English variant they are technology and en. You can change category and language if your NewsAPI plan and use case allow it.
- Connect OpenAI. Open OpenAI: Genera 3 Bozze and connect your OpenAI credentials through the standard n8n procedure. Do not change the response format requested in the prompt if you want the next node to be able to read exactly three JSON objects. The model configured in the file is gpt-4o-mini.
- Connect Google Sheets and set the document. In Salva Content Calendar, connect your Google Sheets credentials. Replace documentId with your file identifier. Keep sheetName as Content Calendar if you created the tab with that name; if you change it, update the same field in the node.
- Run a controlled test. Run the workflow in test mode from your n8n instance. Check that NewsAPI returns a response, that OpenAI produces a JSON array of three drafts, and that Valida e Prepara Bozze produces three items. Do not enable the daily schedule yet.
- Check the result and enable the schedule. In Content Calendar, confirm that three rows appear with platform, text, generated timestamp, and review status. Read each draft and the source news item. Only after a correct test, set your preferred time in Daily Trigger and activate the workflow in your n8n instance.
Daily use
Open the editorial calendar
After the scheduled execution, view the Content Calendar tab. The workflow appends three rows: one for LinkedIn, one for X, and one for Instagram.
Examine the source before the draft
The workflow uses the title of the first item received from NewsAPI. Independently locate and read the source before reusing information or wording in a post.
Review each text
Check facts, context, tone, any information the model identifies as needing verification, and suitability for your audience. reviewStatus is da revisionare in the Italian workflow and needs review in the English variant.
Adapt and publish manually
Edit the draft in your editorial process and publish it manually only after approval. The workflow does not send content to any social platform.
Check n8n executions
Use your n8n instance execution history to identify access errors, invalid responses, or spreadsheet-write issues.
Practical cases
Calendar for a small online shop
A small online shop wants three drafts to review each day without giving the workflow access to its social accounts.
- Import the Italian workflow and connect NewsAPI, OpenAI, and Google Sheets.
- Create the Content Calendar tab with the four required headers.
- Run a test and check the three generated rows.
- Review the source and drafts, then decide manually whether and how to publish.
The team finds three platform-organized drafts in its own spreadsheet, ready to be examined and adapted before any publication.
Italian technology prompts
Someone communicating in Italian wants to start from a technology-category news item and turn it into separate ideas for three channels.
- Choose n8n-content-automation.json.
- Check that category is technology and language is it.
- Check the OpenAI node output and the spreadsheet result.
- Correct any data or statements before using a text.
They obtain a set of three Italian drafts with a generated timestamp and a da revisionare status.
English editorial review
A team working on English content wants English drafts while keeping central editorial control in Google Sheets.
- Choose n8n-content-automation.en.json.
- Check that language is en and connect your own credentials.
- Keep or create the tab named Content Calendar.
- Read the rows marked needs review and approve content outside the workflow.
The team receives three English drafts in the spreadsheet, without automatic social publishing.
Safe test before scheduling
A first-time workflow configurator wants to check data, format, and authorizations before it runs every day.
- Import only one workflow variant.
- Replace the two placeholders and connect the two required n8n credentials.
- Run the flow in test mode.
- Check that the array contains three drafts and the spreadsheet receives three rows.
- Enable the schedule only after manually reviewing the test.
The setup is checked in a controlled execution before scheduled use.
Tips
- Use the Italian JSON file when you want news with language set to it and drafts requested in Italian.
- Use the English JSON file when you want news with language set to en and drafts requested in English.
- Keep the required structure of three JSON objects: Valida e Prepara Bozze stops the flow if the array does not contain exactly three items.
- Keep the headers platform, post, generatedAt, and reviewStatus in the spreadsheet to support automatic mapping in the Google Sheets node.
- If you rename Content Calendar, also update sheetName in Salva Content Calendar.
- Protect your NewsAPI key, OpenAI credentials, and Google Sheets access; do not share them in drafts, screenshots, or public files.
- Check the terms, request limits, and possible charges of NewsAPI, OpenAI, n8n, and Google that apply to your account.
- Always reread the news and the draft: the prompt asks the model not to invent facts, but this does not replace human review.
- Run a test after every change to category, language, credentials, headers, or sheet name.
- Keep the workflow disabled until you have verified that three correct rows are appended to your chosen spreadsheet.
Troubleshooting
Fetch Trending News does not retrieve a news item.
apiKey is still set to the placeholder, is invalid, or your NewsAPI account plan and terms do not permit the request. Check the apiKey parameter in the node, verify the key in your NewsAPI account, and consult the provider documentation, limits, and terms. Do not place the key in public logs.
OpenAI: Genera 3 Bozze does not start or reports an authentication error.
OpenAI credentials are not correctly connected in the node, or the account cannot be used for the request. Reconnect OpenAI credentials through n8n and check authorization, configuration, and applicable charges in your provider account.
Valida e Prepara Bozze reports that OpenAI must return exactly 3 drafts.
The received text is not a valid JSON array or the array does not contain exactly three items. Inspect the OpenAI node output. Keep the instruction requiring only a JSON array of three objects and do not add text or an incompatible format before the validation node.
Valida e Prepara Bozze shows a JSON parsing error.
The received response cannot be interpreted as JSON after removal of any initial and final Markdown delimiters. Inspect the OpenAI output in that execution and restore the response format required by the workflow.
Rows are not appended to Google Sheets.
Google Sheets credentials are not connected, documentId does not identify the right spreadsheet, the Content Calendar tab does not exist, or the account has no write permission. Reconnect credentials in Salva Content Calendar, check documentId, verify the exact tab name, and grant your account the required permissions.
Spreadsheet columns do not show the expected data.
The node uses autoMapInputData and spreadsheet headers do not match the incoming fields. Use or check the platform, post, generatedAt, and reviewStatus headers in the spreadsheet header row, then repeat a test.
Drafts are in a language you did not intend.
The unintended variant was imported or language was changed in Fetch Trending News. For Italian, use n8n-content-automation.json with language it; for English, use n8n-content-automation.en.json with language en. Also recheck the OpenAI node prompt before testing.
The workflow does not run each day at the intended time.
The workflow is not active or Daily Trigger is not configured in your instance with the intended time. After a successful test, configure the schedule in Daily Trigger and activate the workflow. Check executions in your n8n instance.
Limits to know
- The workflow uses only the first news item returned by NewsAPI and performs no automatic fact checking.
- OpenAI output is material to review: always verify facts, tone, rights, sources, and suitability before publication.
- No post is automatically published and no social account is connected by the delivered workflow.
- News availability, authorization, request limits, and potential charges depend on your accounts and third-party providers.
- Respect NewsAPI terms, licences, and rights related to the news source and the content you decide to publish.
- Do not place unnecessary personal data in prompts or the spreadsheet; protect access and data in line with applicable obligations, including GDPR where relevant.
- The package is not a legal, tax, or marketing-compliance certification.
Frequently asked questions
Does the workflow publish automatically to LinkedIn, X, or Instagram?
No. It generates and saves drafts in Google Sheets. Review and publication remain manual.
How many drafts does it generate on each execution?
The prompt and validation node require exactly three drafts: one for LinkedIn, one for X, and one for Instagram.
Which file should I import to work in Italian?
Import n8n-content-automation.json. Its language parameter is it and its model instruction is in Italian.
Which file should I import to work in English?
Import n8n-content-automation.en.json. Its language parameter is en and its model instruction requests English drafts.
Do I need to create the Google Sheets spreadsheet myself?
Yes. You must point documentId to your own spreadsheet and prepare a Content Calendar tab with headers suitable for the incoming data.
Can I change the news category?
The delivered value is technology in Fetch Trending News. You can change the category parameter after checking available options, terms, and limits for your NewsAPI account.