
Step 1: Create a New Workflow
- Go to Studio, then select Create from blank > Workflow.
- Name the workflow
Multi-platform content generatorand click Create. You’ll automatically land on the workflow canvas to start building.
Step 2: Add and Configure Workflow Nodes
Keep any unmentioned settings at their default values.
1. User Input Node: Collect User Inputs
First, we need to define what information to gather from users, such as the draft text, target platforms, desired tone, and any reference materials.The User Input node is where we can easily set this up. Each input field we add here becomes a variable that all downstream nodes can reference and use.

Reference materials - text
Reference materials - text
- Field type:
Paragraph - Variable Name:
draft - Label Name:
Draft - Max length:
2048 - Required:
No
Reference materials - files
Reference materials - files
- Field type:
File list - Variable Name:
user_file - Label Name:
Upload File (≤ 10) - Support File Types:
Document,Image - Upload File Types:
Both - Max number of uploads:
10 - Required:
No
Voice and tone
Voice and tone
- Field type:
Paragraph - Variable Name:
voice_and_tone - Label Name:
Voice & Tone - Max length:
2048 - Required:
No
Target platform
Target platform
- Field type:
Short Text - Variable Name:
platform - Label Name:
Target Platform (≤ 10) - Max length:
256 - Required:
Yes
Language requirements
Language requirements
- Field type:
Select - Variable Name:
language - Label Name:
Language - Options:
English日本語简体中文
- Default value:
English - Required:
Yes
2. Parameter Extractor Node: Identify Target Platforms
Since our platform field accepts free-form text input, users might type in various ways:
x and linkedIn, post on Twitter and LinkedIn, or even Twitter + LinkedIn please. However, we need a clean and structured list, like ["Twitter", "LinkedIn"], that downstream nodes can work with reliably.This is the perfect job for the Parameter Extractor node. It uses an LLM to analyze users’ natural language, recognize all these variations, and output a standardized array.
- Choose a model.
-
Set
User Input/platformas the input variable. -
Add an extract parameter:
- Name:
platform - Type:
Array[String] - Description:
Identify and extract the platform(s) for which the user wants to create tailored content. - Required:
Yes
- Name:
-
In the instruction field, paste the following to guide the LLM in parameter extraction:
INSTRUCTIONNote that we’ve instructed the LLM to output a specific error message for invalid inputs, which will serve as the end trigger for our workflow in the next step.
3. IF/ELSE Node: Validate Platform Extraction Results
What if a user enters an invalid platform name, like
ohhhhhh or BookFace? We don’t want to waste time and tokens generating useless content.In such cases, we can use an IF/ELSE node to create a branch that stops the workflow early. We’ll set a condition that checks for the error message from the Parameter Extractor node; if that message is detected, the workflow will route directly to an Output node and end.
- After the Parameter Extractor node, add an IF/ELSE node.
-
On the IF/ELSE node’s panel, define the IF condition:
IF
Parameter Extractor/platformcontainsNo platforms identified. Please enter a valid platform name. - After the IF/ELSE node, add an Output node to the IF branch.
-
On the Output node’s panel, set
Parameter Extractor/platformas the output variable.
4. List Operator Node: Separate Uploaded Files by Type
Our users can upload both images and documents as reference materials, but these two types require different handling: images can be interpreted directly by vision-enabled models, while documents must first be converted to text for an LLM to understand their content.To manage this, we’ll use two List Operator nodes to filter and split the uploaded files into separate branches—one for images and one for documents.

- After the IF/ELSE node, add two List Operator nodes to the ELSE branch.
- Rename one node to
Imageand the other toDocument. - Configure the Image node:
- Set
User Input/user_fileas the input variable. - Enable the filter condition:
{x}typeinImage
- Set
- Configure the Document node:
- Set
User Input/user_fileas the input variable. - Enable the filter condition:
{x}typeinDoc.
- Set
5. Doc Extractor Node: Extract Text from Documents
LLMs can’t directly read uploaded files like PDF or DOCX. To use the information in these documents, we must first convert them into plain text that LLMs can process.This is exactly what a Doc Extractor node does. It takes document files as input and outputs clean, usable text for the next steps.
- After the Document node, add a Doc Extractor node.
- On the Doc Extractor node’s panel, set
Document/resultas the input variable.
6. LLM Node: Integrate All Reference Materials
When users provide multiple reference types—draft text, documents, and images—simultaneously, we need to consolidate them into a single, coherent summary.An LLM node will handle this task by analyzing all the scattered pieces to create a comprehensive context that guides subsequent content generation.

- After the Doc Extractor node, add an LLM node.
- Connect the Image node to this LLM node as well.
- Click the LLM node to configure it:
-
Rename it to
Integrate Info. - Choose a model that supports vision (indicated by an eye icon).
-
Enable VISION and set
Image/resultas the vision variable. -
In the system prompt field, paste the following:
SYSTEM
-
Rename it to
7. Iteration Node: Create Customized Content for Each Platform
Now that the integrated references and target platforms are ready, let’s generate a tailored post for each platform using an Iteration node.The node will loop through the list of platforms and run a sub-workflow for each: first analyze the specific platform’s style guidelines and best practices, then generate optimized content based on all available information.

- After the Integrate Info node, add an Iteration node.
- Inside the Iteration node, add an LLM node and configure it:
-
Rename it to
Identify Style. - Choose a model.
-
In the system prompt field, paste the following:
SYSTEM
-
Rename it to
- After the Identity Style node, add another LLM node and configure it:
-
Rename it to
Create Content. - Choose a model.
-
In the system prompt field, paste the following:
SYSTEM
-
Enable structured output.

- Next to OUTPUT VARIABLES, toggle STRUCTURED on. The structured_output variable will appear below.
- Next to structured_output, click Configure.
-
In the pop-up schema editor, click Import From JSON in the top-right corner, and paste the following:
-
Rename it to
- Click the Iteration node to configure it:
-
Set
Parameter Extractor/platformas the input variable. -
Set
Create Content/structured_outputas the output variable. -
Enable PARALLEL MODE and set the maximum parallelism to
10.This is why we included(≤10)in the label name for the target platform field back in the User Input node.
-
Set
8. Template Node: Format the Final Output
The Iteration node generates a post for each platform, but its output is a raw array of data (e.g.,
[{"platform_name": "Twitter", "post_content": "..."}]) that isn’t very readable. We need to present the results in a clearer format.That’s where the Template node comes in—it allows us to format this raw data into well-organized text using Jinja2 templating, ensuring the final output is user-friendly and easy to understand.
- After the Iteration node, add a Template node.
-
On the Template node’s panel, set
Iteration/outputas the input variable. -
Paste the following Jinja2 code (remember to delete the comments).
9. Output Node: Return the Results to Users
- After the Template node, add an Output node.
- On the Output node’s panel, set the
Template/outputas the output variable.
Step 3: Test
Your workflow is now complete! Let’s test it out.-
Make sure your Checklist is clear.

- Check your workflow against the reference diagram provided at the beginning to ensure all nodes and connections match.
- Click Test Run in the top-right corner, fill in the input fields, then click Start Run. To run a single node with cached inputs, click the Run this step icon at the top of its configuration panel. If you encounter any errors, check the LAST RUN logs of the corresponding node to identify the exact cause of the problem.
