SarudoResearch Path
FeaturesHow It WorksPricing↗ SwitchReseller↗ SwitchDocsAbout
Get Started
Sarudo logo — AI Employee platformSarudo

AI Employees for Modern Businesses

Product

  • Features
  • How It Works
  • Documentation
  • Pricing
  • WordPress plugin
  • Reseller Program
  • FAQ

Company

  • About
  • Careers
  • Blog
  • Contact

Legal

  • Terms of Service
  • Privacy Policy
  • Refund Policy
  • SLA
  • Acceptable Use
  • Data Processing

© 2026 Sarudo. All rights reserved.

hello@sarudo.com
What is Sarudo?Onboarding ProcessSetting Up TelegramYour First InteractionWhat Your AI Employee Can DoSecurity & PrivacyYour First Conversation with SarudoWhat's Under the HoodBackups & Data Export
Telegram Commands ReferenceManaging ConversationsFile SharingApproval WorkflowTips for Effective CommunicationMulti-User Access
Email Setup & ConfigurationSending & Drafting EmailsReading & Searching InboxEmail Approval FlowEmail Use Cases
Voice Call SetupMaking Outbound CallsCall TranscriptionAI-Powered ConversationsCall History & RecordingsVoice Providers & Options
What Meetings Can DoUploading a RecordingAutomatic TranscriptionAction Items & AttendeesFollowing Up on Action Items
Managing Your CalendarReminders & NotificationsScheduling for OthersDaily Briefings
How Sarudo LearnsStoring & Retrieving KnowledgeDocument IngestionSemantic SearchKnowledge CategoriesContradiction HandlingSettings vs Knowledge
Web SearchWebsite BrowsingCompetitor ResearchYouTube & Video AnalysisLocal Business SearchImage Search
SEO Tools OverviewKeyword ResearchTrending Topics & Blog Gap AnalysisSERP Analysis & Competitor TrackingPutting It Together — A Content Research Workflow
Creating DocumentsPDF OperationsFormat ConversionOCR & Text ExtractionPresentationsDiagrams & Visuals
Built-in TemplatesCustom TemplatesRendering DocumentsBulk Mail Merge
CRM OverviewManaging ContactsCompanies & OrganizationsDeals & PipelineActivity TrackingFollow-ups & RemindersHow Deletion Works
Email EnrichmentDomain & Company LookupEmail FinderLinkedIn Enrichment
Automation OverviewCreating WorkflowsPre-Built TemplatesManaging WorkflowsBuilt-in AutomationsWorkflow Reliability FeaturesDry-Run Mode
How the Pipeline WorksStage 1 — Monthly ResearchStage 2 — Daily DrafterStage 3 — Publish LoopSupported CMS TargetsTuning the Pipeline
Social Media SetupDrafting PostsScheduling & PublishingSocial Post CalendarApproval WorkflowPublishing to Your Own Blog
Stripe Integration SetupCreating Checkout LinksSending InvoicesPayment TrackingProcessing Refunds
Notion IntegrationGoogle Sheets IntegrationAirtable IntegrationWebhook EventsBrowser AutomationMedia ProcessingGoogle Docs IntegrationBrowser Automation — Local vs Cloud
  1. Docs
  2. >
  3. Automation & Workflows
  4. >
  5. Workflow Reliability Features

Workflow Reliability Features

The reliability layer around every Sarudo workflow — contract validation, in-place patching, silent-failure tripwires, dry-run previews, and idempotent migrations.

Last updated: April 22, 2026
reliabilityvalidationheartbeatmigratepatchpreviewcontractsilent failure

Why a Reliability Layer at All

Raw n8n workflows are flexible and powerful, but they fail in a very particular class of ways: silent failures where the workflow thinks it succeeded even though it did nothing useful. A sheet filter that catches zero rows and moves on looks like a success. An HTTP call with a typo'd field name that returns "200 OK ignored unknown field" looks like a success. A cron that skips because the target sheet ID is stale looks like a success. None of these are actually dangerous in isolation — they are dangerous because they are silent. The reliability layer fixes that one class of problem: every workflow Sarudo builds ships with tripwires that turn silent failures into loud ones.

ℹ️

This layer is not optional and is not an upgrade. Every workflow built by Sarudo gets it by default — the four templates in the Pre-Built Templates article already have it wired in. You would have to actively disable it to lose it.

Contract Validation at Activate Time

Before any workflow is activated, its HTTP Request nodes are checked against the Sarudo tool-server's OpenAPI schema. Every node's target URL must resolve to a known endpoint. The HTTP method (POST, PATCH, GET) must match what the endpoint expects. Required fields in the request body must be present. Unknown field names are flagged with a Levenshtein fuzzy-match suggestion ("you wrote `src` on the image section — did you mean `url`?"). If any of these checks fail, activation is refused with a specific error message naming the node, the field, and the suggested fix. This catches the class of bug where a workflow ran for weeks silently sending wrong payload shapes that the endpoint politely ignored.

Validation catching a typo

A workflow refuses to activate because of a field-name mismatch.

You say:
Activate the workflow I just built.
Sarudo responds:
Validation caught an issue in node "Attach Hero Image". You wrote `src: "..."` in the body, but /integrations/google_docs/create expects `url`. Fuzzy suggestion accepted (Levenshtein distance 3). Fix the field name and I'll activate — or I can patch it for you since it's a one-line change.

In-Place Patching

When a workflow needs a change — a new cron time, a fixed field name, a different downstream endpoint — Sarudo patches it in place rather than deleting and recreating it. In-place patching preserves the workflow's n8n ID, execution history, and connections, which means downstream references (webhooks, other workflows, external services pointing at the webhook URL) keep working. The PATCH endpoint accepts surgical per-node updates — you can change one field on one node without touching the other nodes — or full replacement of the nodes array if you are doing a structural rewrite. Either way, it is a single-call operation with a dry-run flag so the plan can be previewed before committing.

⚠️

Before the in-place PATCH was shipped, changing a workflow meant delete-and-recreate, which could briefly leave external callers pointing at a dead webhook URL. If you are aware of any older docs or habits that say "delete the workflow, recreate it with the fix", ignore them — the current pattern is patch in place.

Heartbeat Tripwire for Silent Skips

Every scheduled workflow emits a heartbeat at the end of every run with one of four outcomes: success (the intended work ran and produced output), skipped (the workflow ran but there was nothing to do — zero rows matched the filter, for example), partial (the work ran but the output was incomplete — LLM truncation, fractional failures), or failed (an error occurred). Heartbeats land in Telegram based on a simple rule: success with non-zero rows_processed is quiet (no notification), success with zero rows is treated as a bug signal and pings you, skipped always pings, failed always pings, partial always pings. This means you notice when a workflow has silently stopped doing useful work — it shows up in Telegram as a skip or zero-success ping, not as a quiet "everything is fine."

Zero-match heartbeat in action

The daily drafter finds no approved rows and pings you.

You say:
(No prompt — fires automatically when the drafter runs at 08:30 IST)
Sarudo responds:
(Telegram message) Heartbeat: daily-article-drafter ran at 08:30 IST, outcome=skipped, rows_processed=0. Details: No row with Status=Approved AND Draft Status=Pending. Either all approved topics are drafted, or the column layout drifted. (Six approved rows are still in Draft Status=sent waiting on your email approval — see your inbox.)

Preview Before You Activate

The preview endpoint walks a workflow and classifies every HTTP node by side-effect type. Dry-runnable nodes (endpoints that respect the X-Sarudo-Dry-Run header) can be previewed without running for real. Side-effecting nodes that are not yet dry-run-aware are flagged by name so you can decide whether to activate with confidence or refactor first. This is most useful when you are about to deploy something with real-world consequences (sending emails, posting to social, firing publish webhooks) and want a flight-check before committing. See the Dry-Run Mode article for what the preview actually returns.

Idempotent Migrations

When an existing workflow needs to be updated in the field (for example, a bug in the daily drafter was fixed, or a new column was added to the content-calendar sheet), the fix ships as a named migration patch. The migration registry contains a builder function per patch — the builder detects whether the patch is already applied and skips if so, or produces the list of node patches to apply if not. You can list available migrations, preview what a named migration would change, and apply one by name. The idempotence means it is safe to re-run the same migration and safe to apply migrations out of order — each migration is a self-contained unit.

✅

If an incident fix was rolled out that touches an existing workflow on your instance, Sarudo will mention the migration name and apply it as part of the fix conversation — you do not need to track migrations yourself. But if you are curious, "list automation migrations" gives you the registry.

Related Articles

Creating Workflows
How to build workflows with nodes and triggers including cron schedules, webhooks, and manual execution.
Pre-Built Templates
The four composable workflow patterns Sarudo ships with — scheduled-with-heartbeat, llm-with-retry, sheet-driven-fanout, and approval-loop-drafter.
Dry-Run Mode
How the X-Sarudo-Dry-Run header works, which endpoints respect it, and how to preview side-effecting actions safely.
Previous
Built-in Automations
Automation & Workflows
Next
Dry-Run Mode
Automation & Workflows

On This Page