PRO Feature
This workflow is using nodes from the PRO subscription tier. Learn more about PRO
Reddit Post Workflow
This workflow uses AI to gather the latest news, formats it into a Reddit post, validates the structure, and automatically submits it to a subreddit.
- Preview
- JSON
- Node Configuration
This workflow uses a single DuckDuckGo-powered AI node to research and draft a Reddit post, a Data Validation node to enforce the correct schema, and finally the Reddit Post node to submit the post.

{
"nodes": [
{
"id": "9bcd75a3-7798-4756-aa8e-66e4df300625",
"type": "llm-process",
"data": {
"title": "AI Data Processing",
"model": "gemma4:e2b",
"prompt": "You are a Reddit post writer.\nGather the latest AI technology news from the last week (you have access to \"duckDuckGoSearch\" tool to search the web - the tool use is mandatory), then create a Reddit text post summary (include the liks) with a catchy title.\nOutput only a single valid JSON object with these exact fields: `subreddit`, `postType`, `postTitle`, `postBody`, `postFlair`, `nsfw`, and `spoiler`.\n- `subreddit` must be `r/test`\n- `postType` must be `self`\n- `postFlair` must be an empty string\n- `nsfw` must be `false`\n- `spoiler` must be `false`\nDo not include any extra explanation, markdown, or text outside the JSON object.",
"message": {},
"format": {
"onSuccess": "{\n \"type\": \"object\",\n \"properties\": {\n \"subreddit\": {\n \"type\": \"string\",\n \"const\": \"r/test\"\n },\n \"postType\": {\n \"type\": \"string\",\n \"const\": \"self\"\n },\n \"postTitle\": {\n \"type\": \"string\"\n },\n \"postBody\": {\n \"type\": \"string\"\n },\n \"postFlair\": {\n \"type\": \"string\",\n \"const\": \"\"\n },\n \"nsfw\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"spoiler\": {\n \"type\": \"boolean\",\n \"const\": false\n }\n },\n \"required\": [\"subreddit\", \"postType\", \"postTitle\", \"postBody\", \"postFlair\", \"nsfw\", \"spoiler\"],\n \"additionalProperties\": false\n}"
},
"maxFeedbackLoops": 1,
"maxToolRetries": 3
},
"position": {
"x": 844,
"y": 231.5
},
"measured": {
"width": 160,
"height": 40
},
"selected": false,
"dragging": false
},
{
"id": "52e04348-325d-44a2-97d3-e55c8579b764",
"type": "reddit-post",
"data": {
"title": "Reddit Post",
"subreddit": "",
"postType": "self",
"postTitle": "",
"postBody": "",
"postFlair": "",
"nsfw": false,
"spoiler": false,
"clientId": "",
"postProvidedByUpstream": true
},
"position": {
"x": 1210.5,
"y": 229
},
"measured": {
"width": 160,
"height": 40
},
"selected": false,
"dragging": false
},
{
"id": "8cc5f33b-2fbe-4d1a-884c-98e8aea10caf",
"type": "ai-tool",
"data": {
"title": "DuckDuckGo Search Tool",
"toolSubtype": "duckduckgo-search",
"userConfig": {
"maxResults": 5,
"requireToolUse": true
},
"userConfigSchema": {
"maxResults": {
"type": "integer",
"description": "Maximum number of results to return",
"default": 5,
"minimum": 1,
"maximum": 20
},
"requireToolUse": {
"type": "boolean",
"description": "Require tool use (forces the LLM to always call this tool)",
"default": true
}
}
},
"position": {
"x": 846,
"y": 333
},
"measured": {
"width": 120,
"height": 40
},
"selected": false,
"dragging": false
},
{
"id": "ef3679b5-289d-4669-9d39-19cc1e6cf3d8",
"type": "data-validation",
"data": {
"title": "Data Validation",
"schema": "{\n \"type\": \"object\",\n \"properties\": {\n \"subreddit\": {\n \"type\": \"string\",\n \"const\": \"r/test\"\n },\n \"postType\": {\n \"type\": \"string\",\n \"const\": \"self\"\n },\n \"postTitle\": {\n \"type\": \"string\"\n },\n \"postBody\": {\n \"type\": \"string\"\n },\n \"postFlair\": {\n \"type\": \"string\",\n \"const\": \"\"\n },\n \"nsfw\": {\n \"type\": \"boolean\",\n \"const\": false\n },\n \"spoiler\": {\n \"type\": \"boolean\",\n \"const\": false\n }\n },\n \"required\": [\"subreddit\", \"postType\", \"postTitle\", \"postBody\", \"postFlair\", \"nsfw\", \"spoiler\"],\n \"additionalProperties\": false\n}"
},
"position": {
"x": 1062,
"y": 331.5
},
"measured": {
"width": 120,
"height": 40
},
"selected": false,
"dragging": false
},
{
"id": "534decbf-264d-4291-94e9-217fde372ca5",
"type": "data-flow-spy",
"data": {
"title": "Data Flow Spy"
},
"position": {
"x": 1256.5,
"y": 322.5
},
"measured": {
"width": 120,
"height": 40
},
"selected": false,
"dragging": false
}
],
"edges": [
{
"source": "8cc5f33b-2fbe-4d1a-884c-98e8aea10caf",
"target": "9bcd75a3-7798-4756-aa8e-66e4df300625",
"type": "smoothstep",
"animated": false,
"sourceHandle": "tool",
"targetHandle": "tool",
"id": "xy-edge__8cc5f33b-2fbe-4d1a-884c-98e8aea10caftool-9bcd75a3-7798-4756-aa8e-66e4df300625tool"
},
{
"source": "52e04348-325d-44a2-97d3-e55c8579b764",
"target": "534decbf-264d-4291-94e9-217fde372ca5",
"type": "smoothstep",
"animated": false,
"sourceHandle": "flow",
"targetHandle": "flow",
"id": "xy-edge__52e04348-325d-44a2-97d3-e55c8579b764flow-534decbf-264d-4291-94e9-217fde372ca5flow",
"selected": false
},
{
"source": "ef3679b5-289d-4669-9d39-19cc1e6cf3d8",
"target": "52e04348-325d-44a2-97d3-e55c8579b764",
"type": "smoothstep",
"animated": false,
"sourceHandle": "flow",
"targetHandle": "flow",
"id": "xy-edge__ef3679b5-289d-4669-9d39-19cc1e6cf3d8flow-52e04348-325d-44a2-97d3-e55c8579b764flow"
},
{
"type": "smoothstep",
"animated": false,
"source": "9bcd75a3-7798-4756-aa8e-66e4df300625",
"sourceHandle": "flow",
"target": "ef3679b5-289d-4669-9d39-19cc1e6cf3d8",
"targetHandle": "flow",
"id": "xy-edge__9bcd75a3-7798-4756-aa8e-66e4df300625flow-ef3679b5-289d-4669-9d39-19cc1e6cf3d8flow"
}
]
}
- AI Data Processing (Writer)
- Model:
gemma4:e2b - Prompt: Uses DuckDuckGo Search tool to gather the latest AI technology news and output a single valid JSON object with the Reddit post fields.
- Format on Success: JSON schema enforcing the Reddit post object shape.
- Max Feedback Loops:
1 - Max Tool Retries:
3
- Model:
- DuckDuckGo Search Tool
- Max Results:
5 - Require Tool Use:
true
- Max Results:
- Data Validation
- Schema: Enforces
subreddit,postType,postTitle,postBody,postFlair,nsfw, andspoilerfields.
- Schema: Enforces
- Reddit Post
- Client ID: (your Reddit app Client ID)
- Client Secret: (your Reddit app Client Secret)
- Post Provided by Upstream:
true
- Data Flow Spy
- Inspects the Reddit Post node output for debugging.
Steps
- Search and draft the post
- The AI Data Processing node uses the DuckDuckGo Search tool to gather the latest AI technology news, then drafts and validates the Reddit post as a single JSON object.
- Validate the structure
- The Data Validation node applies a JSON schema to guarantee all required fields are present and correctly typed before the post is submitted.
- Submit to Reddit
- The Reddit Post node reads the upstream JSON and submits the post using the configured OAuth credentials.
- Inspect the result
- The Data Flow Spy node captures the Reddit Post node output for debugging and verification.
Common Use Cases
- Automated news summaries: Publish periodic AI-generated news digests to a subreddit.
- Content pipeline testing: Use
r/testas a sandbox to validate the full post pipeline before switching to a real subreddit. - Research-to-post automation: Chain any research source to the formatter and post the results to Reddit automatically.
Best Practices
- Authenticate before sharing: Complete the Reddit OAuth flow in the Reddit Post node settings before running or exporting this workflow.
- Use
r/testfirst: Always test withr/testto avoid unintended posts to real subreddits. - Never commit credentials: The
clientId,clientSecret, andaccessTokenfields are intentionally left empty in this template — fill them in at runtime only. - Tune the writer prompt: Adjust the writer node's prompt to target a different topic, subreddit, or post format.
- Increase
maxFeedbackLoops: If the writer model frequently produces malformed JSON, raising the feedback loop count gives it more attempts to self-correct.
Troubleshooting
- Post not submitted: Verify that the Reddit OAuth flow has been completed and the access token is valid. Re-authenticate if needed.
- Validation fails: Check the Data Validation node schema and ensure the formatter node's output exactly matches the required fields (including
postFlair: ""). - AI returns malformed JSON: Increase
maxFeedbackLoopson the writer node or switch to a larger/more instruction-following model. - Missing news results: Confirm the DuckDuckGo Search tool has
requireToolUse: trueand that the writer prompt explicitly instructs tool usage. clientId/clientSecretnot persisted after save: These fields are sanitized on workflow export by design — enter them directly in the node settings each session.