Addresses PR issue, completes remaining nodes, corrects grammar in Email Trigger documentation, and adds nodes documentation in markdown format for the workflow tab.#7
Conversation
The changes address a grammatical issue in the Email-Trigger.mdx file, enhancing clarity and readability by ensuring correct sentence structure. * Email-Trigger.mdx: Fixed a grammatical error for better readability.
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughAdds ~33 new workflow documentation pages across AI-Nodes, Database, Process Nodes, Triggers, and Utility sections and updates docs.json to add a top-level "Workflow" navigation tab. Changes are documentation-only; no code or public API modifications. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 9
🧹 Nitpick comments (12)
Workflow/Process-Nodes/for-loop.mdx (1)
99-118: Address style issues: sentence structure repetition and weak intensifier.Two minor style improvements from static analysis:
Lines 101-105: Three consecutive "Set" instructions create monotonous sentence structure. Consider varying the phrasing (e.g., "Configure the start value", "Specify the end value", "Adjust the step if needed").
Line 115: Replace the weak intensifier "very" with a stronger alternative. "Avoid excessively large end values..." or "Avoid extremely large end values..." reads more firmly.
Workflow/Process-Nodes/Switch-case.mdx (1)
17-28: Improve sentence variety in the description examples.Lines 21-25 show three consecutive bullet points beginning with "If", creating repetitive structure. Consider varying the phrasing for better readability:
Instead of:
* If the input is "1", the workflow can proceed to an "Add Data" node. * If the input is "2", it can proceed to a "Delete Data" node. * If the input does not match any case, it will follow the default branch...Try:
* When the input is "1", the workflow proceeds to an "Add Data" node. * Input "2" routes to a "Delete Data" node. * Any unmatched input follows the default branch...Workflow/Utility/Handle-Variable.mdx (1)
70-79: Consider using "brief" for stronger wording in step 5.Line 76 uses "short description"; "brief description" is more idiomatic and strengthens the phrasing.
-5. Optionally, write a short description. +5. Optionally, write a brief description.Workflow/Process-Nodes/if-else-condition.mdx (1)
134-144: Reduce repetition in the workflow usage steps.The phrasing is repetitive across lines 138 and 143. Consider varying the language for better readability.
4. **Choose an Operator** Select how the comparison should be done (`Equals`, `Contains`, `Greater Than`, etc.). 5. **Set a Value** - Enter the value you want to compare against. + Specify the comparison value. 6. **Connect the True and False Paths** * Connect the **True path** to the action you want if the condition is met. - * Connect the **False path** to the action you want if it's not met. + * Route the **False path** to the action for unmet conditions.Workflow/Triggers/File-Upload-Trigger.mdx (1)
153-161: Minor style improvement: consider replacing "extremely" with a more specific descriptor.Line 159 uses "extremely large files" — consider a more precise alternative like "large files" or "oversized files" to strengthen the guidance. This aligns with best practices for avoiding over-used intensifiers.
Apply this change if desired:
- * Avoid attaching extremely large files to prevent delays or timeouts. + * Avoid attaching oversized files to prevent delays or timeouts.Workflow/Triggers/Time-Based-Runs.mdx (1)
116-118: Improve sentence variety in Best Practices section.Lines 116–118 begin with repeated "Use" statements. Consider varying the sentence structure for better readability while maintaining clarity.
Example revision:
* Use **interval** for simple repeat tasks (e.g., every few minutes or hours). * Prefer **natural_description** for readability in business or team workflows. * Consider **cron_description** for complex or system-level automation.Workflow/AI-Nodes/Text-Extraction.mdx (1)
15-15: Minor style: Consider restructuring to avoid split infinitive.Line 15 contains "automatically pull" (split infinitive). While acceptable in many contexts, consider restructuring for formality:
- This node is designed to automatically pull text and metadata from a variety of input formats + This node pulls text and metadata automatically from various input formatsWorkflow/AI-Nodes/Content-Moderation.mdx (1)
96-97: Minor formatting inconsistency in output parameters.Line 96 lacks a closing period:
**processingId** A unique identifier...should have a line break and period. Compare with other parameter definitions that follow the pattern of label on one line and description below.Workflow/Database/update-data.mdx (1)
29-30: Minor: Reduce phrasing repetition for variety.Line 29 ("The unique identifier of the record you want to update") repeats "want to" language used nearby. Consider:
- * **id** – The unique identifier of the record you want to update. It's used as both a query and data input. + * **id** – The unique identifier of the record to update. It serves as both query and data input.Workflow/Database/create-graphs.mdx (1)
35-35: Minor: Reduce "want to" phrase repetition.Line 35 uses "want to use" but similar phrasing appears nearby (line 52, line 58). For variety:
- * **Table Name:** The name of the database table or collection you want to use (for example, `test3 (production)`). + * **Table Name:** The name of the database table or collection to query (for example, `test3 (production)`).Workflow/Database/query-data.mdx (2)
58-58: Minor: Reduce "want to" phrase repetition.Line 58 uses "want to retrieve" but similar phrasing appears at lines 40 and others. For variety:
- * **Limit:** Specify how many records you want to retrieve at most. + * **Limit:** Specify the maximum number of records to retrieve.
231-231: Minor: Replace phrasal verb for formality.Line 231 uses "left out" (phrasal verb). In technical documentation, consider the more formal alternative:
- You might have left out a necessary input or not connected upstream nodes correctly. + You might have omitted a necessary input or failed to connect upstream nodes correctly.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (34)
Workflow/AI-Nodes/Content-Moderation.mdx(1 hunks)Workflow/AI-Nodes/Image-analysis.mdx(1 hunks)Workflow/AI-Nodes/Image-generation.mdx(1 hunks)Workflow/AI-Nodes/Text-Extraction.mdx(1 hunks)Workflow/AI-Nodes/Text-Generation.mdx(1 hunks)Workflow/AI-Nodes/Text-to-speech.mdx(1 hunks)Workflow/Database/add-new-data.mdx(1 hunks)Workflow/Database/create-graphs.mdx(1 hunks)Workflow/Database/delete-data.mdx(1 hunks)Workflow/Database/fetch-data.mdx(1 hunks)Workflow/Database/query-data.mdx(1 hunks)Workflow/Database/update-data.mdx(1 hunks)Workflow/Process-Nodes/Loop-process.mdx(1 hunks)Workflow/Process-Nodes/Switch-case.mdx(1 hunks)Workflow/Process-Nodes/for-loop.mdx(1 hunks)Workflow/Process-Nodes/if-else-condition.mdx(1 hunks)Workflow/Process-Nodes/return-state.mdx(1 hunks)Workflow/Triggers/Email-Trigger.mdx(1 hunks)Workflow/Triggers/File-Upload-Trigger.mdx(1 hunks)Workflow/Triggers/Rest-Api-Trigger.mdx(1 hunks)Workflow/Triggers/Time-Based-Runs.mdx(1 hunks)Workflow/Triggers/Whatsapp-trigger.mdx(1 hunks)Workflow/Utility/Calendar-Add-Event.mdx(1 hunks)Workflow/Utility/Calendar-Fetch-Events.mdx(1 hunks)Workflow/Utility/Custom-Node.mdx(1 hunks)Workflow/Utility/Google-Maps.mdx(1 hunks)Workflow/Utility/HTML-PDF.mdx(1 hunks)Workflow/Utility/Handle-Variable.mdx(1 hunks)Workflow/Utility/Http-Request.mdx(1 hunks)Workflow/Utility/Send-Sms-Using-Plivo.mdx(1 hunks)Workflow/Utility/Send-WhatsApp.mdx(1 hunks)Workflow/Utility/Web-Search.mdx(1 hunks)Workflow/Utility/send-mail.mdx(1 hunks)docs.json(1 hunks)
🧰 Additional context used
🪛 LanguageTool
Workflow/Process-Nodes/if-else-condition.mdx
[style] ~92-~92: It’s more common nowadays to write this noun as one word.
Context: ... branch**. --- ### Example 2: Match a User Name Input: ```json { "sourceNode": ...
(RECOMMENDED_COMPOUNDS)
[style] ~138-~138: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... Set a Value Enter the value you want to compare against. 6. **Connect the True...
(REP_WANT_TO_VB)
[style] ~143-~143: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... you want if the condition is met. * Connect the False path to the action you wa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Workflow/Utility/Google-Maps.mdx
[style] ~130-~130: The double modal “requires input” is nonstandard (only accepted in certain dialects). Consider “to be input”.
Context: ...* * If the selected option requires input (such as addresses or coordinates), use...
(NEEDS_FIXED)
Workflow/Process-Nodes/for-loop.mdx
[style] ~104-~104: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e start value. 3. Set the end value. 4. Set step if needed. 5. Place one or more no...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~115-~115: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... Test with a small range first. • Avoid very large end values to prevent performance issue...
(EN_WEAK_ADJECTIVE)
Workflow/Database/query-data.mdx
[style] ~58-~58: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...Limit:** Specify how many records you want to retrieve at most. * **Start After / Of...
(REP_WANT_TO_VB)
[style] ~231-~231: To strengthen your wording, consider replacing the phrasal verb “leave out”.
Context: ...sing required field:** You might have left out a necessary input or not connected upst...
(OMIT_EXCLUDE)
Workflow/Utility/Handle-Variable.mdx
[style] ~76-~76: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...u want to store. 5. Optionally, write a short description. 6. Save changes and connec...
(QUICK_BRIEF)
Workflow/Database/update-data.mdx
[style] ~29-~29: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...The unique identifier of the record you want to update. It’s used as both a query and d...
(REP_WANT_TO_VB)
Workflow/Database/add-new-data.mdx
[style] ~9-~9: ‘new records’ might be wordy. Consider a shorter alternative.
Context: ...dd New Data** node allows you to insert new records into your existing database tables or c...
(EN_WORDINESS_PREMIUM_NEW_RECORDS)
[style] ~35-~35: ‘new record’ might be wordy. Consider a shorter alternative.
Context: ...for these parameters to insert into the new record. Example: ```json { "name": ...
(EN_WORDINESS_PREMIUM_NEW_RECORD)
Workflow/Process-Nodes/Switch-case.mdx
[style] ~25-~25: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... can proceed to a “Delete Data” node. * If the input does not match any case, it w...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Workflow/Process-Nodes/return-state.mdx
[style] ~26-~26: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...0 for success). * message – gives a short description of the result. * data –...
(QUICK_BRIEF)
Workflow/AI-Nodes/Text-Extraction.mdx
[style] ~15-~15: Try moving the adverb to make the sentence clearer.
Context: ...low. --- ## Description This node is designed to automatically pull text and metadata from a variety of input formats — inclu...
(SPLIT_INFINITIVE)
[style] ~15-~15: Consider using a more concise synonym.
Context: ...tomatically pull text and metadata from a variety of input formats — including **documents, ...
(A_VARIETY_OF)
Workflow/AI-Nodes/Text-to-speech.mdx
[grammar] ~90-~90: Use a hyphen to join words.
Context: ...ample Usage ### Example 1 — Simple Text to Speech Input: ```json { "text...
(QB_NEW_EN_HYPHEN)
[grammar] ~90-~90: Use a hyphen to join words.
Context: ...le Usage ### Example 1 — Simple Text to Speech Input: ```json { "text": ...
(QB_NEW_EN_HYPHEN)
Workflow/Triggers/File-Upload-Trigger.mdx
[style] ~159-~159: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ... in larger workflows. * Avoid attaching extremely large files to prevent delays or timeouts. * ...
(EN_WEAK_ADJECTIVE)
Workflow/Triggers/Time-Based-Runs.mdx
[style] ~118-~118: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...edules (e.g., “every day at 9am”). * Use cron_description for advanced timin...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Workflow/Database/create-graphs.mdx
[style] ~35-~35: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...of the database table or collection you want to use (for example, test3 (production))...
(REP_WANT_TO_VB)
[style] ~163-~163: Consider using the synonym “brief” (= concise, using a few words, not lasting long) to strengthen your wording.
Context: ...2. Open Node Settings and give it a short description (optional). 3. Select the *...
(QUICK_BRIEF)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: cubic · AI code reviewer
🔇 Additional comments (26)
Workflow/Utility/Http-Request.mdx (1)
1-180: Well-structured and comprehensive HTTP Request documentation.The documentation effectively covers the node's purpose, parameter definitions, and practical examples. Input/output schemas are clearly defined, and the "Best Practices" and "Common Errors" sections provide useful guidance for users. The two usage examples (POST and GET) are concrete and representative of common use cases.
Workflow/Process-Nodes/return-state.mdx (1)
1-184: Excellent Return State Node documentation with clear examples and guidance.The documentation effectively explains the node's role as the workflow endpoint, with well-structured JSON examples showing both successful and failed scenarios. The parameter mapping syntax using
{{nodeId.output.field}}is clearly illustrated, and the "Best Practices" section appropriately emphasizes end-of-workflow placement and meaningful status codes.Optional style note: Line 26 uses "short description" — consider "brief description" for slightly stronger wording.
Workflow/Utility/Web-Search.mdx (1)
1-193: Comprehensive Web Search Node documentation with realistic examples.The documentation clearly conveys the node's purpose in retrieving real-time web data. Parameter definitions distinguish between required (
searchQuery) and optional outputs (summary,results[],searchId). The example outputs are concrete and demonstrate the JSON structure users will receive. The "Best Practices" section appropriately emphasizes query specificity and API rate limits, while "Common Errors" provides actionable troubleshooting guidance.Workflow/Utility/send-mail.mdx (1)
1-196: Well-documented Send Mail Node with thorough best practices.The documentation provides clear parameter definitions with helpful examples (e.g., showing actual delivery ID format). The two usage examples effectively demonstrate both simple and complex email scenarios (with CC/BCC/attachments). The "Best Practices" section is particularly strong, covering domain verification, HTML safety, and retry logic. The "Example Workflow Integration" section with three common patterns (form submission, report generation, scheduled trigger) helps users understand practical application contexts.
Workflow/Process-Nodes/Loop-process.mdx (1)
1-203: Solid Loop Process Node documentation with clear iterative patterns.The documentation effectively explains the loop mechanism using a loop variable and maximum iterations. The two examples progress naturally from a simple 10-iteration loop to a multi-item processing scenario. Output parameters are clearly defined (including
batchesProcessedwhich relates to batch operations). The "Example Workflow Integration" section with the "send 10 personalized emails" use case is particularly practical and relatable. The concluding summary section reinforces the node's value proposition effectively.Workflow/Utility/Send-Sms-Using-Plivo.mdx (1)
1-222: Comprehensive Send SMS using Plivo documentation with thorough setup guidance.The documentation clearly communicates the node's prerequisites (Plivo account, DLT provider registration, sender ID verification), which is crucial for user success. Parameter definitions include important technical details (6-char limit for sender ID, 160-char message splitting). The two examples effectively demonstrate both direct messaging and AI-powered message generation workflows. The "Common Errors" section is particularly thorough, addressing infrastructure-level concerns (DLT registration, template approval) beyond simple input validation, which provides excellent troubleshooting guidance for users encountering integration issues.
Workflow/Utility/Google-Maps.mdx (1)
1-169: Documentation structure is comprehensive and well-organized.The Google Maps node documentation includes all essential sections: overview, description, input parameters, output parameters, output type, practical examples, step-by-step usage instructions, best practices, and error handling. The variable reference syntax (lines 69–72) is clearly demonstrated for downstream integration.
Workflow/Utility/Handle-Variable.mdx (1)
1-102: Documentation is clear and accessible for the Handle Variable node.The content effectively explains variable storage and retrieval in beginner-friendly language. The practical example (lines 53–67) clearly demonstrates variable creation and usage within workflows. Best practices and error handling sections provide actionable guidance.
Workflow/Process-Nodes/if-else-condition.mdx (1)
1-201: Documentation is thorough with clear examples and integration guidance.The If/Else Condition node documentation includes detailed input/output specifications, two well-explained examples with actual outputs, step-by-step usage instructions, and a realistic workflow integration scenario. The summary section (lines 195–197) effectively reinforces the node's purpose.
Workflow/Utility/HTML-PDF.mdx (1)
1-145: HTML-to-PDF documentation is comprehensive and practical.The documentation clearly explains the node's purpose, provides realistic example outputs (including AWS S3 URLs), and includes practical best practices such as avoiding external images and using inline CSS. The workflow integration scenario (lines 125–134) effectively demonstrates end-to-end usage.
Workflow/Utility/Send-WhatsApp.mdx (1)
1-123: Send WhatsApp documentation is complete with Twilio-specific guidance.The documentation effectively covers Twilio integration requirements, template variable substitution, and Twilio-specific error cases. The step-by-step usage guide (9 steps) and metadata section provide clear implementation details. The example (lines 68–84) realistically demonstrates message personalization with template variables.
Workflow/Utility/Custom-Node.mdx (1)
1-226: Custom Node documentation comprehensively covers code execution patterns.The documentation includes language-specific examples (JavaScript and Python), demonstrates variable input/output chaining (lines 197–202), and provides robust best practices for code safety and error handling. The workflow integration scenario effectively shows how custom logic integrates with AI-generated outputs and downstream messaging nodes.
Workflow/Database/fetch-data.mdx (1)
1-199: Fetch Data documentation is complete and practical.The documentation clearly explains three retrieval modes (Fetch All, Fetch Specific, Count) and provides realistic example outputs with sample user records. The workflow integration scenario (lines 178–187) effectively demonstrates a common pattern of fetch → format → distribute. Best practices appropriately recommend using Count Documents before bulk operations.
docs.json (1)
120-186: Path mappings verified—all docs.json entries have corresponding MDX files.All 33 workflow paths in docs.json have matching MDX files with consistent case transformation (e.g.,
workflow/utility/google-maps→Workflow/Utility/Google-Maps.mdx). Files mentioned as potentially missing (Image-analysis.mdx, Content-Moderation.mdx) both exist. No orphaned paths or extra files detected.Workflow/Utility/Calendar-Fetch-Events.mdx (1)
1-275: Comprehensive and well-structured documentation.The Calendar Fetch Events node documentation is clear, complete, and follows the established documentation pattern. Variable reference syntax, examples, and error handling are all well-documented. The inclusion of realistic workflow integration examples and best practices adds practical value.
Workflow/Database/delete-data.mdx (1)
1-150: Well-documented with appropriate emphasis on data safety.The Delete Data Node documentation is thorough and emphasizes important best practices like using unique conditions and testing in staging environments. The error section is comprehensive, and the workflow integration example clearly shows the deletion step in context. Documentation quality is consistent with other node docs.
Workflow/Triggers/Whatsapp-trigger.mdx (1)
1-155: Clear and practical trigger documentation.The WhatsApp Trigger node documentation is well-structured and covers all essential aspects. The distinction between text-only and attachment scenarios in examples is helpful. Variable reference syntax is consistent with other trigger documentation. The common errors section appropriately addresses webhook connectivity and message data issues.
Workflow/Database/add-new-data.mdx (1)
1-200: Comprehensive database operation documentation with clear error guidance.The Add New Data Node documentation is thorough and effectively demonstrates both success and error scenarios. The emphasis on collectionName format and dynamic variable references is clear. The best practices section appropriately emphasizes schema consistency and testing in development environments before production use.
Workflow/AI-Nodes/Text-to-speech.mdx (1)
88-100: Comprehensive with clear voice options and practical examples.The Text-to-Speech Node documentation is well-organized with clear voice ID definitions and realistic examples. The distinction between static text and variable-based examples is helpful. Variable reference syntax is consistent with other AI node documentation.
Workflow/AI-Nodes/Image-analysis.mdx (1)
59-74: Remove duplicate "Instructions" section.The "Instructions" section appears twice (lines 59-62 and 65-74) with identical content. Remove the duplicate to improve document clarity.
Apply this change by removing one of the instruction blocks:
--- -**Instructions:** -Provide all inputs as flat key-value pairs. -Dynamic variables can be referenced using `{{nodeId.output.<key>}}` syntax to link outputs from previous nodes. - ---- - - -**Instructions:** -Provide all values as flat key-value pairs. -Access variable references dynamically using:Likely an incorrect or invalid review comment.
Workflow/Triggers/Rest-Api-Trigger.mdx (1)
1-215: Documentation is well-structured and comprehensive.The REST API Trigger documentation is clear, practical, and includes helpful examples covering different input methods (JSON, form-data, query parameters). Security best practices are appropriately emphasized. No significant issues identified.
Workflow/Utility/Calendar-Add-Event.mdx (1)
1-270: Documentation is comprehensive and well-structured.The Calendar Add Event documentation effectively covers both virtual meetings (with Google Meet) and physical location events. Examples are realistic, permissions guidance is helpful, and common errors are well-documented. No significant issues identified.
Workflow/Triggers/Email-Trigger.mdx (1)
1-249: LGTM! Comprehensive and well-structured Email Trigger documentation.This documentation file is well-organized, clear, and provides excellent guidance for end users. The sections flow logically from overview to practical usage, examples are valid and helpful, and the common errors section gives clear troubleshooting paths. No grammar or structural issues identified.
Workflow/AI-Nodes/Text-Generation.mdx (3)
32-149: Input and Output Parameters sections are comprehensive and well-structured.Beyond the meta-commentary removals above, the Input Parameters section (lines 32+) and Output Parameters section (lines 107+) are well-organized, clear, and provide excellent guidance. The flat JSON structure requirement is clearly emphasized, and examples are accurate.
151-220: Excellent usage examples with valid JSON and expected outputs.The two examples effectively demonstrate both text generation and structured JSON generation workflows. The JSON schemas are valid, outputs are realistic, and the explanations are clear. Example connection patterns align with the Email Trigger documentation style.
234-277: Best Practices and Common Errors sections are actionable and helpful.The best practices provide practical guidance (e.g., randomness thresholds, using flat JSON), and the common errors section clearly maps causes to resolutions. Consistent with Email Trigger documentation quality.
There was a problem hiding this comment.
14 issues found across 34 files
Prompt for AI agents (all 14 issues)
Understand the root cause of the following 14 issues and fix them.
<file name="Workflow/Process-Nodes/for-loop.mdx">
<violation number="1" location="Workflow/Process-Nodes/for-loop.mdx:34">
Clarify that `iterations` returns the iteration values rather than a count.</violation>
</file>
<file name="Workflow/AI-Nodes/Text-Extraction.mdx">
<violation number="1" location="Workflow/AI-Nodes/Text-Extraction.mdx:224">
Example 3 wraps the response in an extra `output` object, contradicting the documented `{{nodeId.output.*}}` access pattern and the earlier examples. Please flatten the sample output so the fields remain at the top level.</violation>
</file>
<file name="Workflow/AI-Nodes/Text-Generation.mdx">
<violation number="1" location="Workflow/AI-Nodes/Text-Generation.mdx:115">
`processingTime` is documented as ISO timestamp here, but the examples immediately below show it as an integer count. Please align the description with the actual payload format so readers know what to expect.</violation>
</file>
<file name="Workflow/Process-Nodes/Switch-case.mdx">
<violation number="1" location="Workflow/Process-Nodes/Switch-case.mdx:89">
Example 2 claims that an input of "2" hits the default branch, but earlier sections map "2" to the Delete Data path. Update the unmatched-case example to use a value that isn’t assigned to a case so the documentation stays consistent.</violation>
</file>
<file name="Workflow/AI-Nodes/Image-analysis.mdx">
<violation number="1" location="Workflow/AI-Nodes/Image-analysis.mdx:117">
The Example 1 JSON output includes an extra opening brace, so the snippet is not valid JSON and will fail to parse if copied verbatim.</violation>
</file>
<file name="Workflow/Utility/send-mail.mdx">
<violation number="1" location="Workflow/Utility/send-mail.mdx:82">
The sample request exposes a personal Gmail address. Replace it with a neutral example address under example.com to avoid leaking real user data.</violation>
</file>
<file name="Workflow/AI-Nodes/Content-Moderation.mdx">
<violation number="1" location="Workflow/AI-Nodes/Content-Moderation.mdx:161">
The Example 1 JSON marks `flaggedCategories` as an array even though the output documentation specifies a comma-separated string. Please make the example match the documented output format so readers know which shape to expect.</violation>
<violation number="2" location="Workflow/AI-Nodes/Content-Moderation.mdx:179">
`processingTime` is documented as an ISO timestamp, but the example uses a numeric duration string. Update the sample to use the documented ISO timestamp format.</violation>
</file>
<file name="Workflow/Utility/Http-Request.mdx">
<violation number="1" location="Workflow/Utility/Http-Request.mdx:51">
Use `userId` in this request payload so the example reflects the actual JSONPlaceholder field name and aligns with the GET example.</violation>
<violation number="2" location="Workflow/Utility/Http-Request.mdx:74">
Update this output field to `userId` so the documentation matches the actual JSONPlaceholder response and the GET example below; using `userid` leads to incorrect field mapping.</violation>
<violation number="3" location="Workflow/Utility/Http-Request.mdx:109">
Change this to `userId` so the expected output mirrors the actual JSONPlaceholder response format and remains consistent with the GET example.</violation>
</file>
<file name="Workflow/Utility/Send-WhatsApp.mdx">
<violation number="1" location="Workflow/Utility/Send-WhatsApp.mdx:19">
Include the `whatsapp:` prefix in the From Number example so it matches Twilio's required format; otherwise the Send WhatsApp node will fail when users follow this doc.</violation>
<violation number="2" location="Workflow/Utility/Send-WhatsApp.mdx:23">
Update the To Number example to include the `whatsapp:` prefix required by Twilio so that readers copy a working format.</violation>
</file>
<file name="Workflow/Triggers/Rest-Api-Trigger.mdx">
<violation number="1" location="Workflow/Triggers/Rest-Api-Trigger.mdx:155">
The documented trigger URL omits the required `{flowId}` segment. Please update the examples (e.g., `https://yourdomain.com/flows/trigger/{flowId}`) so readers use a valid endpoint.</violation>
</file>
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
| ## Output Parameters | ||
|
|
||
| iterations | ||
| Number of iterations performed. |
There was a problem hiding this comment.
Clarify that iterations returns the iteration values rather than a count.
Prompt for AI agents
Address the following comment on Workflow/Process-Nodes/for-loop.mdx at line 34:
<comment>Clarify that `iterations` returns the iteration values rather than a count.</comment>
<file context>
@@ -0,0 +1,153 @@
+## Output Parameters
+
+iterations
+Number of iterations performed.
+
+totalIterations
</file context>
| Number of iterations performed. | |
| List of iteration values produced by the loop. |
|
|
||
| ```json | ||
| { | ||
| "output": { |
There was a problem hiding this comment.
Example 3 wraps the response in an extra output object, contradicting the documented {{nodeId.output.*}} access pattern and the earlier examples. Please flatten the sample output so the fields remain at the top level.
Prompt for AI agents
Address the following comment on Workflow/AI-Nodes/Text-Extraction.mdx at line 224:
<comment>Example 3 wraps the response in an extra `output` object, contradicting the documented `{{nodeId.output.*}}` access pattern and the earlier examples. Please flatten the sample output so the fields remain at the top level.</comment>
<file context>
@@ -0,0 +1,320 @@
+
+```json
+{
+ "output": {
+ "content": "The evening sky was painted with shades of orange and violet. As the city slowly settled into its nightly rhythm. Streetlights flickered to life, casting warm pools of light on the sidewalks where people hurried home, their faces half hidden behind scarves and tired smiles. Somewhere, a musician played a soft tune on a saxophone, its notes drifting between buildings like fragments of a forgotten dream. In the distance, the sound of traffic blended with laughter spilling out of a nearby cafe. Inside, a, uh, writer sat alone with a cup of coffee gone cold, his laptop open but untouched. He watched the rain begin to fall against the window, tracing patterns that matched the rhythm of his thoughts. Every drop felt like a reminder that even in a crowded city, moments of stillness could be found in the smallest details. A quiet song, a stranger's laughter, or the glow of street lights reflecting on wet pavement. And in that quiet, he finally began to type M. Not to impress anyone or chase perfection, but simply to capture the fleeting beauty of the world as he saw it.",
+ "processingTime": "2025-10-27T12:05:43Z",
</file context>
| Indicates the total number of tokens or data units processed by the AI model during execution. | ||
|
|
||
| * **processingTime** | ||
| The time taken for the AI to generate the response, returned in ISO timestamp format. |
There was a problem hiding this comment.
processingTime is documented as ISO timestamp here, but the examples immediately below show it as an integer count. Please align the description with the actual payload format so readers know what to expect.
Prompt for AI agents
Address the following comment on Workflow/AI-Nodes/Text-Generation.mdx at line 115:
<comment>`processingTime` is documented as ISO timestamp here, but the examples immediately below show it as an integer count. Please align the description with the actual payload format so readers know what to expect.</comment>
<file context>
@@ -0,0 +1,282 @@
+ Indicates the total number of tokens or data units processed by the AI model during execution.
+
+* **processingTime**
+ The time taken for the AI to generate the response, returned in ISO timestamp format.
+
+* **processingId**
</file context>
| ```json | ||
| { | ||
| "input": { | ||
| "number": "2" |
There was a problem hiding this comment.
Example 2 claims that an input of "2" hits the default branch, but earlier sections map "2" to the Delete Data path. Update the unmatched-case example to use a value that isn’t assigned to a case so the documentation stays consistent.
Prompt for AI agents
Address the following comment on Workflow/Process-Nodes/Switch-case.mdx at line 89:
<comment>Example 2 claims that an input of "2" hits the default branch, but earlier sections map "2" to the Delete Data path. Update the unmatched-case example to use a value that isn’t assigned to a case so the documentation stays consistent.</comment>
<file context>
@@ -0,0 +1,162 @@
+```json
+{
+ "input": {
+ "number": "2"
+ }
+}
</file context>
| **Input:** | ||
|
|
||
| ```json | ||
| { |
There was a problem hiding this comment.
The Example 1 JSON output includes an extra opening brace, so the snippet is not valid JSON and will fail to parse if copied verbatim.
Prompt for AI agents
Address the following comment on Workflow/AI-Nodes/Image-analysis.mdx at line 117:
<comment>The Example 1 JSON output includes an extra opening brace, so the snippet is not valid JSON and will fail to parse if copied verbatim.</comment>
<file context>
@@ -0,0 +1,285 @@
+**Input:**
+
+```json
+{
+ "analysisType": "image-analysis",
+ "attachments": "file123.jpg",
</file context>
✅ Addressed in 1b5638d
| [ | ||
| { "key": "title", "value": "hello world" }, | ||
| { "key": "body", "value": "this is test request" }, | ||
| { "key": "userid", "value": "1" } |
There was a problem hiding this comment.
Use userId in this request payload so the example reflects the actual JSONPlaceholder field name and aligns with the GET example.
Prompt for AI agents
Address the following comment on Workflow/Utility/Http-Request.mdx at line 51:
<comment>Use `userId` in this request payload so the example reflects the actual JSONPlaceholder field name and aligns with the GET example.</comment>
<file context>
@@ -0,0 +1,180 @@
+[
+ { "key": "title", "value": "hello world" },
+ { "key": "body", "value": "this is test request" },
+ { "key": "userid", "value": "1" }
+]
+```
</file context>
| { "key": "userid", "value": "1" } | |
| { "key": "userId", "value": "1" } |
|
|
||
| **title (String)** – Returned title | ||
| **body (String)** – Returned body | ||
| **userid (String)** – Returned user id |
There was a problem hiding this comment.
Update this output field to userId so the documentation matches the actual JSONPlaceholder response and the GET example below; using userid leads to incorrect field mapping.
Prompt for AI agents
Address the following comment on Workflow/Utility/Http-Request.mdx at line 74:
<comment>Update this output field to `userId` so the documentation matches the actual JSONPlaceholder response and the GET example below; using `userid` leads to incorrect field mapping.</comment>
<file context>
@@ -0,0 +1,180 @@
+
+**title (String)** – Returned title
+**body (String)** – Returned body
+**userid (String)** – Returned user id
+**id (Number)** – Identifier created by API
+**status (Number)** – HTTP status code
</file context>
| **userid (String)** – Returned user id | |
| **userId (String)** – Returned user id |
|
|
||
| **To Number** | ||
| Recipient’s phone number in international format. | ||
| Example: `+919876543210` |
There was a problem hiding this comment.
Update the To Number example to include the whatsapp: prefix required by Twilio so that readers copy a working format.
Prompt for AI agents
Address the following comment on Workflow/Utility/Send-WhatsApp.mdx at line 23:
<comment>Update the To Number example to include the `whatsapp:` prefix required by Twilio so that readers copy a working format.</comment>
<file context>
@@ -0,0 +1,123 @@
+
+**To Number**
+Recipient’s phone number in international format.
+Example: `+919876543210`
+
+**Conversation Type**
</file context>
| Example: `+919876543210` | |
| Example: `whatsapp:+919876543210` |
|
|
||
| **From Number** | ||
| WhatsApp-enabled Twilio number used to send the message. | ||
| Example: `+14151234567` |
There was a problem hiding this comment.
Include the whatsapp: prefix in the From Number example so it matches Twilio's required format; otherwise the Send WhatsApp node will fail when users follow this doc.
Prompt for AI agents
Address the following comment on Workflow/Utility/Send-WhatsApp.mdx at line 19:
<comment>Include the `whatsapp:` prefix in the From Number example so it matches Twilio's required format; otherwise the Send WhatsApp node will fail when users follow this doc.</comment>
<file context>
@@ -0,0 +1,123 @@
+
+**From Number**
+WhatsApp-enabled Twilio number used to send the message.
+Example: `+14151234567`
+
+**To Number**
</file context>
| Example: `+14151234567` | |
| Example: `whatsapp:+14151234567` |
| Place the node at the start of your workflow. It acts as the entry point for data received via HTTP requests. | ||
|
|
||
| 2. **Copy the Workflow Endpoint** | ||
| Each workflow generates a unique REST API endpoint (e.g., `https://yourdomain.com/api/workflows/trigger`). |
There was a problem hiding this comment.
The documented trigger URL omits the required {flowId} segment. Please update the examples (e.g., https://yourdomain.com/flows/trigger/{flowId}) so readers use a valid endpoint.
Prompt for AI agents
Address the following comment on Workflow/Triggers/Rest-Api-Trigger.mdx at line 155:
<comment>The documented trigger URL omits the required `{flowId}` segment. Please update the examples (e.g., `https://yourdomain.com/flows/trigger/{flowId}`) so readers use a valid endpoint.</comment>
<file context>
@@ -0,0 +1,215 @@
+ Place the node at the start of your workflow. It acts as the entry point for data received via HTTP requests.
+
+2. **Copy the Workflow Endpoint**
+ Each workflow generates a unique REST API endpoint (e.g., `https://yourdomain.com/api/workflows/trigger`).
+ External systems will send data to this endpoint.
+
</file context>
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (3)
Workflow/AI-Nodes/Content-Moderation.mdx (1)
153-179: Align example output formats with documented specifications.The documented output format specifies
flaggedCategoriesas a comma-separated string (line 85–86) andprocessingTimeas an ISO timestamp (line 88–90), but the Example 1 output shows them in different formats. Update the example to match the documentation.{ "output": { "flagged": true, - "flaggedCategories": [ - "harassment" - ], + "flaggedCategories": "harassment", "categories": { "harassment": true, ... }, - "processingTime": "1.417", + "processingTime": "2025-10-27T10:45:12Z", "processingId": "modr-3438" } }Workflow/AI-Nodes/Text-Generation.mdx (1)
158-212: Align exampleprocessingTimeformat with documented specification.The documentation states that
processingTimeis "returned in ISO timestamp format" (line 107), but both Example 1 (line 164) and Example 2 (line 206) show it as a numeric value instead. Update the examples to use ISO timestamp format as documented."output": { "content": "AI ethics are...", - "processingTime": 5178, + "processingTime": "2025-10-27T11:30:00Z", "processingId": "google-520649282babb51d", "processingCount": 439, "conversationId": "71e9512ea89b9e9f0d1d174369678b85" }Also update Example 2 (line 206):
"processingTime": 2414, + "processingTime": "2025-10-27T11:45:00Z",docs.json (1)
120-186: Fix inconsistent indentation in Workflow tab groups.Lines 133 and 145 have excessive indentation that breaks the consistent 2-space pattern used for other group objects. Align them with the formatting of the Triggers group (line 124) and Database group (line 164).
{ - { "group" : "AI-Nodes", "pages" : [ "workflow/ai-nodes/text-generation", @@ -142,7 +142,7 @@ ] }, - { + { "group" : "Utility", "pages" : [ "workflow/utility/send-mail",
🧹 Nitpick comments (1)
Workflow/Process-Nodes/if-else-condition.mdx (1)
140-144: Consider rephrasing to reduce repetitive sentence structure.Lines 142–143 have consecutive bullet points that both start with "Connect," which creates repetitive phrasing. Consider varying the sentence structure for better readability.
6. **Connect the True and False Paths** - * Connect the **True path** to the action you want if the condition is met. - * Connect the **False path** to the action you want if it's not met. + * Link the **True path** to the action you want if the condition is met. + * Link the **False path** to the action you want if it's not met.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
Workflow/AI-Nodes/Content-Moderation.mdx(1 hunks)Workflow/AI-Nodes/Image-analysis.mdx(1 hunks)Workflow/AI-Nodes/Image-generation.mdx(1 hunks)Workflow/AI-Nodes/Text-Generation.mdx(1 hunks)Workflow/Process-Nodes/if-else-condition.mdx(1 hunks)Workflow/Utility/Google-Maps.mdx(1 hunks)docs.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- Workflow/AI-Nodes/Image-generation.mdx
- Workflow/AI-Nodes/Image-analysis.mdx
🧰 Additional context used
🪛 LanguageTool
Workflow/Process-Nodes/if-else-condition.mdx
[style] ~138-~138: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... Set a Value Enter the value you want to compare against. 6. **Connect the True...
(REP_WANT_TO_VB)
[style] ~143-~143: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... you want if the condition is met. * Connect the False path to the action you wa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🔇 Additional comments (1)
Workflow/Utility/Google-Maps.mdx (1)
1-169: LGTM!The documentation is well-structured with clear sections and the double-modal phrasing issue has been corrected. Output examples are consistent and the integration guidance is comprehensive.
This pull request addresses several improvements and additions:
Resolves a previous PR issue.
Completes the implementation of the remaining nodes.
Documentation:
- Corrected grammar in the Email Trigger documentation for improved readability.
- Added documentation for nodes in the workflow tab, providing descriptions in markdown format.
Summary by cubic
Added comprehensive Workflow tab documentation with MDX pages for all remaining nodes and updated navigation to make features easier to find and use. Also fixed grammar in Email Trigger docs and addressed prior PR issues.
New Features
Bug Fixes
Summary by CodeRabbit