{"id":589,"date":"2026-05-13T00:56:10","date_gmt":"2026-05-13T00:56:10","guid":{"rendered":"https:\/\/webcosmonauts.pl\/tech-world-moving-from-automation-to-autonomy\/"},"modified":"2026-09-20T11:21:48","modified_gmt":"2026-09-20T11:21:48","slug":"tech-world-moving-from-automation-to-autonomy","status":"publish","type":"post","link":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/","title":{"rendered":"Error-resistant automation: retries, logs, and duplicates"},"content":{"rendered":"<p>A webhook can arrive twice, and an external API might stop responding. How to design automation that can handle such situations.<\/p>\n<h2>Design the Architecture Before You Automate Anything<\/h2>\n<p>The cleanest way to think about durable WordPress automation is to separate responsibilities. WordPress should validate the business event and expose a controlled interface. n8n should orchestrate the workflow, not pretend to be the source of truth. External services should enrich or act on data, but not own the canonical record unless you have explicitly designed that ownership. Once those boundaries are clear, the system becomes much easier to reason about.<\/p>\n<p>In practice, that means a WordPress plugin or custom integration should handle event capture, authentication, payload shaping, and local persistence. n8n should receive a predictable payload, execute the workflow, and return a structured response. If AI is involved, it should be treated as a probabilistic enrichment layer, not as the authority on business logic. That is especially important for RAG and content workflows, where generated text may be useful but still needs validation before publishing.<\/p>\n<h3>WordPress plugin side: capture, validate, persist<\/h3>\n<p>The plugin-side job is usually underestimated. A proper WordPress plugin integration should do more than fire a webhook. It should validate input, sanitize fields, store a local execution record, and attach an idempotency key to the event. If the webhook is retried, the plugin must recognize the request and avoid duplicating the business action. This is where a lot of systems break: they assume the network is reliable and the remote endpoint is always ready. It is not.<\/p>\n<p>A durable plugin-side design typically includes:<\/p>\n<ul>\n<li>a REST endpoint or webhook receiver with authentication;<\/li>\n<li>a payload schema with required and optional fields;<\/li>\n<li>a unique event identifier or idempotency key;<\/li>\n<li>post meta or a custom table for execution state;<\/li>\n<li>clear error logging when a downstream request fails;<\/li>\n<li>a queue or scheduled retry mechanism for deferred processing.<\/li>\n<\/ul>\n<p>If the event originates from WooCommerce, form submissions, or custom post types, the plugin should translate those source events into a stable internal contract. Do not forward raw plugin data directly to n8n and hope it stays compatible forever. Plugin updates change field names, add nested arrays, and alter timing. Your integration layer should absorb that churn.<\/p>\n<h3>n8n side: orchestration, retries, branching<\/h3>\n<p>n8n workflow reliability depends on how you use it. If every node assumes a perfect payload and every branch assumes a successful response, you are building a demo. If you design explicit retries, error branches, dead-letter handling, and idempotent operations, you are building infrastructure. The difference is not cosmetic. It determines whether the workflow can survive real production traffic.<\/p>\n<p>At the orchestration layer, n8n should receive a normalized payload, validate required fields, and route the event through deterministic steps. If a downstream API fails, the workflow should know whether to retry immediately, wait, or stop and alert. If a step is not safe to repeat, the workflow should not blindly retry it. That is why the idempotency strategy must be designed before the workflow goes live, not after the first duplicate request appears in the logs.<\/p>\n<h3>AI or RAG side: enrichment, not authority<\/h3>\n<p>If your workflow includes AI-assisted content systems, lead scoring, or knowledge retrieval, keep the role of AI narrow and explicit. RAG can enrich a record, classify an incoming request, or draft a response, but it should not silently override business-critical data. In a durable system, AI output is just another input to validation. You check it, constrain it, and store the result with traceability. If you cannot explain why a model output changed a record, the system is not autonomous. It is opaque.<\/p>\n<h2>What Usually Goes Wrong in WordPress Automation<\/h2>\n<p>Najcz\u0119stszym trybem awarii jest podw\u00f3jne wykonanie. Webhook wyga\u015bnie, nadawca spr\u00f3buje ponownie, a ta sama akcja biznesowa zostanie przetworzona dwukrotnie. Je\u015bli workflow tworzy lead w CRM, wysy\u0142a email lub oznacza zam\u00f3wienie jako zrealizowane, ta duplikacja stanie si\u0119 widoczna dla klienta. Dlatego idempotentne webhooki s\u0105 wa\u017cne. Zamieniaj\u0105 &#8222;mo\u017ce dwa razy&#8221; na &#8222;tylko raz lub bezpiecznie powt\u00f3rzone&#8221;.<\/p>\n<p>Another common failure is partial success. The source plugin saves the event, but the remote API call fails. Or the API call succeeds, but WordPress never receives the confirmation. Without a retry policy and a local execution log, nobody knows which side is correct. The result is manual reconciliation, which is exactly the kind of hidden labor automation is supposed to eliminate.<\/p>\n<p>Schema drift is another quiet killer. A plugin update renames a field or changes a nested structure. The workflow still runs, but the data is wrong. This is especially dangerous in systems that rely on AI enrichment, because the output may look plausible even when the input is incomplete. The system does not crash; it just becomes inaccurate. That is harder to detect and more expensive to fix.<\/p>\n<p>Finally, people underestimate authentication failures. A webhook URL exposed without a secret, a public endpoint with no permission checks, or a shared API key stored carelessly in admin settings is not a small risk. It is a production liability. If your automation can be triggered by anyone who knows the URL, it is not an integration. It is an open door.<\/p>\n<h2>Error Handling: Retries, Logs, and Partial Failure Recovery<\/h2>\n<p>Automation error handling should be designed around the question: what is safe to repeat, what is safe to skip, and what must never happen twice? That is the core of durable automation. Every workflow step should be classified before implementation. If a step can be retried without side effects, good. If it cannot, then the workflow needs a guardrail such as a stored execution state, a lock, or a confirmation check before retrying.<\/p>\n<p>Retries should not be naive. A retry policy needs a limit, a delay strategy, and a reason to exist. Immediate retries are fine for transient network issues, but not for rate limits or validation errors. If an API returns a 400 because the payload is malformed, retrying is just noise. If it returns a 429, the workflow should back off. If the response is ambiguous, the system should log the raw request and response so a human can inspect it later.<\/p>\n<p>Logging should be structured, not decorative. You want event IDs, timestamps, payload hashes, step names, response codes, and correlation IDs. If a lead disappears between WordPress and the CRM, you should be able to trace the exact step where it failed. A good log is not just for debugging. It is your operational memory.<\/p>\n<p>Partial failure recovery often requires a queue. Not every action should happen synchronously in the request cycle. If a webhook receiver must respond quickly, it should acknowledge receipt, persist the event, and hand the work to a background process. That keeps the front door responsive and reduces the chance of timeout-based duplicates. In WordPress, this can be implemented with scheduled jobs, custom queues, or a lightweight async processing layer depending on scale.<\/p>\n<h3>Practical retry policy example<\/h3>\n<p>A sensible retry policy for a WordPress to n8n workflow might look like this:<\/p>\n<ul>\n<li>Retry network timeouts up to 3 times with exponential backoff.<\/li>\n<li>Do not retry validation errors; log and mark the event as failed.<\/li>\n<li>Retry rate-limit responses after the server-provided delay if available.<\/li>\n<li>Store every attempt with the same idempotency key.<\/li>\n<li>Escalate to manual review after the final failure.<\/li>\n<\/ul>\n<p>This is not glamorous, but it is the difference between a system that quietly recovers and one that turns a temporary outage into a business incident.<\/p>\n<h2>Implementation Example 1: Lead Capture With Idempotent Webhooks<\/h2>\n<p>Consider a lead form on WordPress that must create or update a CRM record, notify sales, and store a local audit trail. A fragile version of this system sends raw form data directly to n8n and hopes the request arrives once. A durable version creates a local event record, assigns an idempotency key, and only then dispatches the webhook.<\/p>\n<p>The flow can look like this:<\/p>\n<pre><code>Form submission\n  \u2192 WordPress plugin validates fields\n  \u2192 Save event in custom table \/ post meta\n  \u2192 Generate idempotency key\n  \u2192 Send signed webhook to n8n\n  \u2192 n8n checks key and processes lead\n  \u2192 CRM create\/update\n  \u2192 Store result and correlation ID\n  \u2192 Return structured success\/failure response\n  \u2192 WordPress marks event as processed or queued for retry<\/code><\/pre>\n<p>In this pattern, the same submission can safely be received twice without creating two leads. The CRM step should also be idempotent if possible, usually by searching for the lead using email or an external reference before creating a new record. That gives you two layers of protection: one at the webhook boundary and one at the business-object boundary.<\/p>\n<p>The practical trade-off is obvious. This takes more engineering than a one-node automation. But it also survives the real world, where requests get retried, plugins are updated, and APIs do not always behave politely. If the workflow is tied to revenue, that trade-off is worth it.<\/p>","protected":false},"excerpt":{"rendered":"<p>A webhook can arrive twice, and an external API might stop responding. How to design automation that can handle such situations.<\/p>","protected":false},"author":1,"featured_media":590,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,106,26,5],"tags":[61,103,135,94,203,204,180,202,102,101],"class_list":["post-589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-ai-integrations","category-technical-seo","category-wordpress-development","tag-wordpress-automation","tag-idempotency","tag-api-integration","tag-n8n","tag-workflow-reliability","tag-error-handling","tag-ai-workflows","tag-plugin-development","tag-webhooks","tag-woocommerce"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.12 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty | Web Cosmonauts<\/title>\n<meta name=\"description\" content=\"Webhook mo\u017ce dotrze\u0107 dwa razy, a zewn\u0119trzne API przesta\u0107 odpowiada\u0107. Jak zaplanowa\u0107 automatyzacj\u0119, kt\u00f3ra poradzi sobie z takimi sytuacjami.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty\" \/>\n<meta property=\"og:description\" content=\"Webhook mo\u017ce dotrze\u0107 dwa razy, a zewn\u0119trzne API przesta\u0107 odpowiada\u0107. Jak zaplanowa\u0107 automatyzacj\u0119, kt\u00f3ra poradzi sobie z takimi sytuacjami.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Cosmonauts\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-13T00:56:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-20T11:21:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dmitry Rodionov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dmitry Rodionov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/\"},\"author\":{\"name\":\"Dmitry Rodionov\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#\\\/schema\\\/person\\\/20a13a6808bb9e28093d74dd214ca988\"},\"headline\":\"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty\",\"datePublished\":\"2026-05-13T00:56:10+00:00\",\"dateModified\":\"2026-09-20T11:21:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/\"},\"wordCount\":1487,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/tech-world-moving-from-automation-to-autonomy-featured.jpg\",\"keywords\":[\"automatyzacja WordPress\",\"idempotentno\u015b\u0107\",\"Integracja API\",\"n8n\",\"niezawodno\u015b\u0107 workflow\",\"obs\u0142uga b\u0142\u0119d\u00f3w\",\"Przep\u0142ywy pracy AI\",\"tworzenie plugin\u00f3w\",\"webhooki\",\"WooCommerce\"],\"articleSection\":[\"Automatyzacja\",\"Integracje AI\",\"Technical SEO\",\"Tworzenie WordPress\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/\",\"url\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/\",\"name\":\"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty | Web Cosmonauts\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/tech-world-moving-from-automation-to-autonomy-featured.jpg\",\"datePublished\":\"2026-05-13T00:56:10+00:00\",\"dateModified\":\"2026-09-20T11:21:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#\\\/schema\\\/person\\\/20a13a6808bb9e28093d74dd214ca988\"},\"description\":\"Webhook mo\u017ce dotrze\u0107 dwa razy, a zewn\u0119trzne API przesta\u0107 odpowiada\u0107. Jak zaplanowa\u0107 automatyzacj\u0119, kt\u00f3ra poradzi sobie z takimi sytuacjami.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/tech-world-moving-from-automation-to-autonomy-featured.jpg\",\"contentUrl\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/tech-world-moving-from-automation-to-autonomy-featured.jpg\",\"width\":1600,\"height\":900,\"caption\":\"Durable automation starts with architecture, not shortcuts.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/en\\\/tech-world-moving-from-automation-to-autonomy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webcosmonauts.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#website\",\"url\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/\",\"name\":\"Web Cosmonauts\",\"description\":\"Agencja cyfrowa \u2014 strony, aplikacje mobilne i design\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#organization\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#\\\/schema\\\/person\\\/20a13a6808bb9e28093d74dd214ca988\",\"name\":\"Dmitry Rodionov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g\",\"caption\":\"Dmitry Rodionov\"},\"sameAs\":[\"https:\\\/\\\/dmitry-cv.test\"]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/#organization\",\"name\":\"Web Cosmonauts\",\"url\":\"https:\\\/\\\/www.webcosmonauts.pl\\\/\",\"legalName\":\"Webcosmonauts Dmytro Rodionov\",\"taxID\":\"8992815323\",\"foundingDate\":\"2025-03-26\",\"email\":\"info@webcosmonauts.pl\",\"telephone\":\"+48 884 335 443\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"ul. S. Drabika 71 lok. 13\",\"postalCode\":\"52-131\",\"addressLocality\":\"Wroc\u0142aw\",\"addressCountry\":\"PL\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Error-resistant automation: retries, logs, and duplicates | Web Cosmonauts","description":"A webhook can arrive twice, and an external API might stop responding. How to design automation that can handle such situations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/","og_locale":"en_US","og_type":"article","og_title":"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty","og_description":"Webhook mo\u017ce dotrze\u0107 dwa razy, a zewn\u0119trzne API przesta\u0107 odpowiada\u0107. Jak zaplanowa\u0107 automatyzacj\u0119, kt\u00f3ra poradzi sobie z takimi sytuacjami.","og_url":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/","og_site_name":"Web Cosmonauts","article_published_time":"2026-05-13T00:56:10+00:00","article_modified_time":"2026-09-20T11:21:48+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg","type":"image\/jpeg"}],"author":"Dmitry Rodionov","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dmitry Rodionov","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#article","isPartOf":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/"},"author":{"name":"Dmitry Rodionov","@id":"https:\/\/www.webcosmonauts.pl\/#\/schema\/person\/20a13a6808bb9e28093d74dd214ca988"},"headline":"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty","datePublished":"2026-05-13T00:56:10+00:00","dateModified":"2026-09-20T11:21:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/"},"wordCount":1487,"commentCount":0,"image":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg","keywords":["automatyzacja WordPress","idempotentno\u015b\u0107","Integracja API","n8n","niezawodno\u015b\u0107 workflow","obs\u0142uga b\u0142\u0119d\u00f3w","Przep\u0142ywy pracy AI","tworzenie plugin\u00f3w","webhooki","WooCommerce"],"articleSection":["Automatyzacja","Integracje AI","Technical SEO","Tworzenie WordPress"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/","url":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/","name":"Error-resistant automation: retries, logs, and duplicates | Web Cosmonauts","isPartOf":{"@id":"https:\/\/www.webcosmonauts.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#primaryimage"},"image":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg","datePublished":"2026-05-13T00:56:10+00:00","dateModified":"2026-09-20T11:21:48+00:00","author":{"@id":"https:\/\/www.webcosmonauts.pl\/#\/schema\/person\/20a13a6808bb9e28093d74dd214ca988"},"description":"A webhook can arrive twice, and an external API might stop responding. How to design automation that can handle such situations.","breadcrumb":{"@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#primaryimage","url":"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg","contentUrl":"https:\/\/www.webcosmonauts.pl\/wp-content\/uploads\/2026\/05\/tech-world-moving-from-automation-to-autonomy-featured.jpg","width":1600,"height":900,"caption":"Durable automation starts with architecture, not shortcuts."},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcosmonauts.pl\/en\/tech-world-moving-from-automation-to-autonomy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webcosmonauts.pl\/"},{"@type":"ListItem","position":2,"name":"Automatyzacja odporna na b\u0142\u0119dy: ponowienia, logi i duplikaty"}]},{"@type":"WebSite","@id":"https:\/\/www.webcosmonauts.pl\/#website","url":"https:\/\/www.webcosmonauts.pl\/","name":"Web Cosmonauts","description":"Digital agency \u2014 websites, mobile apps and design","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcosmonauts.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US","publisher":{"@id":"https:\/\/www.webcosmonauts.pl\/#organization"}},{"@type":"Person","@id":"https:\/\/www.webcosmonauts.pl\/#\/schema\/person\/20a13a6808bb9e28093d74dd214ca988","name":"Dmitry Rodionov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a161d8d9bd822ce887c659f040239f63fc942d73f0d3047597aa2bc20b54332?s=96&d=mm&r=g","caption":"Dmitry Rodionov"},"sameAs":["https:\/\/dmitry-cv.test"]},{"@type":"Organization","@id":"https:\/\/www.webcosmonauts.pl\/#organization","name":"Web Cosmonauts","url":"https:\/\/www.webcosmonauts.pl\/","legalName":"Webcosmonauts Dmytro Rodionov","taxID":"8992815323","foundingDate":"2025-03-26","email":"info@webcosmonauts.pl","telephone":"+48 884 335 443","address":{"@type":"PostalAddress","streetAddress":"ul. S. Drabika 71 lok. 13","postalCode":"52-131","addressLocality":"Wroc\u0142aw","addressCountry":"PL"}}]}},"_links":{"self":[{"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/posts\/589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/comments?post=589"}],"version-history":[{"count":4,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/posts\/589\/revisions"}],"predecessor-version":[{"id":1297,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/posts\/589\/revisions\/1297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/media\/590"}],"wp:attachment":[{"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/media?parent=589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/categories?post=589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcosmonauts.pl\/en\/wp-json\/wp\/v2\/tags?post=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}