{"id":14903,"date":"2026-10-29T09:08:36","date_gmt":"2026-10-29T08:08:36","guid":{"rendered":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/"},"modified":"2026-10-29T09:09:18","modified_gmt":"2026-10-29T08:09:18","slug":"business-automation-safe-retries-no-duplicates","status":"publish","type":"post","link":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en","title":{"rendered":"Business automation: recover from an error without creating duplicates"},"content":{"rendered":"<style>body.postid-14903 h3.entry-title.mkdf-post-title{display:none!important}@media(max-width:768px){body.postid-14903 #menu-icon{position:absolute!important}body.postid-14903 #mkdf-back-to-top{display:none!important}}<\/style>\n<h1>Business automation: recover from an error without creating duplicates<\/h1>\n<p>An order appears in your sales system. The automation stops before confirming that a delivery record has been created. Someone clicks \u201cretry\u201d. The customer receives two confirmations, and the team now has to establish whether one delivery record exists or two.<\/p>\n<p><strong>This is an illustrative scenario.<\/strong> It raises a question to settle before launch: how do you resume an automation without repeating work that has already been completed? Start by checking the actual state in the connected systems, then resume only the missing steps. An error message does not prove that nothing happened.<\/p>\n<h2>Why a failed automation may already have taken action<\/h2>\n<p>Between the sales system and the delivery system, two separate events occur: the action completes, then its acknowledgement returns. If the connection breaks between those events, one system may report failure while the other has already created the record.<\/p>\n<p>Microsoft\u2019s guidance on <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/retry\">retry strategies<\/a> describes this exact case: a service processes a request successfully but fails to send the expected response. Repeating the request can then produce an additional effect. Some faults are temporary and justify another attempt; that does not make every action safe to repeat.<\/p>\n<p>For the business owner, \u201csucceeded or failed\u201d is therefore not a sufficient status model. There must also be an \u201coutcome needs checking\u201d state. Without it, a technical uncertainty becomes an implicit business decision: start everything again.<\/p>\n<h2>Resume the action, not the entire workflow<\/h2>\n<p>Our example has three outcomes: an order recorded, a delivery record created and a confirmation sent. If the first two already exist, repeating the whole workflow adds no value. It creates another opportunity for a duplicate record or message.<\/p>\n<p>Each outcome must be retrievable and associated with the correct order. A log entry saying \u201cworkflow executed\u201d is not enough. The team needs to know which record was created, in which system and with what confirmation. If that evidence is missing, recovery should pause or go to a named person rather than rely on a blanket restart.<\/p>\n<p>If the process still depends on scattered spreadsheets and email threads, first <a href=\"https:\/\/say-digital.io\/blog\/business-automation-sme-excel-emails\/?lang=en\">define the first business workflow to automate<\/a>. Recovery becomes testable once the team has agreed what a processed order actually means.<\/p>\n<h2>Idempotency prevents some duplicates, not every error<\/h2>\n<p>An action is <strong>idempotent<\/strong> when repeating it has no additional effect compared with performing it once. For record creation, some services let the caller attach a unique reference to a request so that a later attempt can be recognised as the same request.<\/p>\n<p><a href=\"https:\/\/docs.stripe.com\/api\/idempotent_requests\">Stripe documents this mechanism<\/a> for its idempotent requests. That is not a guarantee you can transfer to any connector. Supported operations, retention periods and error handling depend on the service and its version. Checking those boundaries is part of the integration work.<\/p>\n<p>AWS also explains how to <a href=\"https:\/\/aws.amazon.com\/builders-library\/making-retries-safe-with-idempotent-APIs\/\">make retries safer<\/a>, including the distinction between a repeated request and a genuinely new intent. Two identical orders can be legitimate. Blocking every similar-looking record could therefore suppress a real order.<\/p>\n<p>The control must recognise the same action, not merely the same text. Protecting record creation does not automatically protect the next confirmation message either. Each consequential step has its own limits.<\/p>\n<h2>What evidence should you require before launch?<\/h2>\n<p>A demonstration without interruptions shows that the normal path works. It does not show how the team will recover a partially processed order. Ask for a recovery demonstration too, using test data and without contacting real customers.<\/p>\n<ul>\n<li><strong>Lost acknowledgement:<\/strong> the action succeeds in the destination system, but the response is missing. Recovery finds the existing result instead of creating a duplicate.<\/li>\n<li><strong>The same event arrives twice:<\/strong> only one business action is expected, even though the trigger is repeated.<\/li>\n<li><strong>A mid-workflow interruption:<\/strong> confirmed steps remain complete; only unfinished steps resume.<\/li>\n<li><strong>Corrected data:<\/strong> a genuine change is distinguished from another attempt at the original request.<\/li>\n<li><strong>An outcome cannot be established:<\/strong> the record goes to a human check, with a named owner and the evidence needed to decide.<\/li>\n<\/ul>\n<p>Acceptance should be assessed in the destination system: how many records exist, which message was sent and which order do they belong to? A green execution status cannot answer those questions on its own.<\/p>\n<h2>Who decides when the outcome is still uncertain?<\/h2>\n<p>The person supervising the workflow must be able to find the record, check its effects and decide what happens next. That requires an explicit role, an understandable alert and a useful history. Sending \u201cunknown error\u201d to the entire team does not assign responsibility.<\/p>\n<p>An AI agent can help summarise the interruption or prepare a check. It should not infer that a record does not exist merely because the record is absent from its context. Access permissions and available evidence still determine what can be established. Human approval should remain part of the plan for sensitive or irreversible actions whose outcome cannot be confirmed.<\/p>\n<p>Recovery and correction are different jobs. Recovery completes missing work. Correction deals with something that already happened: a duplicate record, an incorrect message or the wrong status. That may require a compensating action rather than a simple rollback. A message already received does not disappear when the workflow restarts.<\/p>\n<h2>How reliability changes the automation budget<\/h2>\n<p>A quote covering only the connection between two tools may leave out interruptions, duplicates and exception handling. Before comparing prices, compare what will actually be demonstrated: the normal path, incident recovery, traceability and handover to an operator.<\/p>\n<p>When comparing <a href=\"https:\/\/say-digital.io\/blog\/how-much-business-automation-cost\/?lang=en\">business automation costs<\/a>, ask whether acceptance includes recovering an interrupted order. If the budget will not cover that, reduce the initial scope: a record creation that the team can verify is more useful than a longer workflow whose unfinished steps nobody can safely resume.<\/p>\n<p>Within the Say Digital Framework, that requirement is defined during scoping: choose the business outcome, prototype a short workflow, prove recovery in testing, then include those checks in continuous delivery before a controlled rollout. After launch, exceptions and resolution time show where the workflow needs improvement. Numerical savings cannot be promised without measuring the actual scope.<\/p>\n<h2>Before you click \u201cretry\u201d<\/h2>\n<p>Ask three questions first: which action may already have happened, where can we verify it and who decides if evidence is missing? If nobody can answer, the button is not the problem. The workflow is missing a recovery rule.<\/p>\n<p><a id=\"say-recovery-cta\" href=\"https:\/\/say-digital.io\/\"><strong>Scope your business automation with Say Digital<\/strong><\/a>: start with a real workflow, identify the effects to protect and agree the evidence required before launch.<\/p>\n<h2>Sources<\/h2>\n<p>Official documentation consulted on 29 October 2026. These references support the retry and idempotency mechanisms discussed here; they are not evidence of client results.<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/patterns\/retry\">Microsoft Azure \u2014 Retry pattern<\/a><\/li>\n<li><a href=\"https:\/\/docs.stripe.com\/api\/idempotent_requests\">Stripe \u2014 Idempotent requests<\/a><\/li>\n<li><a href=\"https:\/\/aws.amazon.com\/builders-library\/making-retries-safe-with-idempotent-APIs\/\">AWS Builders\u2019 Library \u2014 Making retries safe with idempotent APIs<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.<\/p>\n","protected":false},"author":2,"featured_media":14901,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[160],"tags":[],"class_list":["post-14903","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Business automation: safe retries without duplicates<\/title>\n<meta name=\"description\" content=\"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Business automation: safe retries without duplicates\" \/>\n<meta property=\"og:description\" content=\"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en\" \/>\n<meta property=\"og:site_name\" content=\"Say Digital I\/O\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T08:08:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T08:09:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"842\" \/>\n\t<meta property=\"og:image:height\" content=\"595\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lia Amplify\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lia Amplify\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture est.\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en\"},\"author\":{\"name\":\"Lia Amplify\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/#\\\/schema\\\/person\\\/8ee0600139c147afbd1fa3ced079c557\"},\"headline\":\"Business automation: recover from an error without creating duplicates\",\"datePublished\":\"2026-10-29T08:08:36+00:00\",\"dateModified\":\"2026-10-29T08:09:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en\"},\"wordCount\":1116,\"image\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/automatisation-metier-reprise-sans-doublons-cover.jpg\",\"articleSection\":[\"Automation\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en\",\"url\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en\",\"name\":\"Business automation: safe retries without duplicates\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/automatisation-metier-reprise-sans-doublons-cover.jpg\",\"datePublished\":\"2026-10-29T08:08:36+00:00\",\"dateModified\":\"2026-10-29T08:09:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/#\\\/schema\\\/person\\\/8ee0600139c147afbd1fa3ced079c557\"},\"description\":\"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#primaryimage\",\"url\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/automatisation-metier-reprise-sans-doublons-cover.jpg\",\"contentUrl\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/automatisation-metier-reprise-sans-doublons-cover.jpg\",\"width\":842,\"height\":595,\"caption\":\"Illustration unDraw \u2014 Version control.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/business-automation-safe-retries-no-duplicates\\\/?lang=en#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Business automation: recover from an error without creating duplicates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/\",\"name\":\"Say Digital I\\\/O\",\"description\":\"Un site utilisant WordPress\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/say-digital.io\\\/blog\\\/#\\\/schema\\\/person\\\/8ee0600139c147afbd1fa3ced079c557\",\"name\":\"Lia Amplify\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g\",\"caption\":\"Lia Amplify\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Business automation: safe retries without duplicates","description":"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.","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:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/","og_locale":"fr_FR","og_type":"article","og_title":"Business automation: safe retries without duplicates","og_description":"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.","og_url":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en","og_site_name":"Say Digital I\/O","article_published_time":"2026-10-29T08:08:36+00:00","article_modified_time":"2026-10-29T08:09:18+00:00","og_image":[{"width":842,"height":595,"url":"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg","type":"image\/jpeg"}],"author":"Lia Amplify","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Lia Amplify","Dur\u00e9e de lecture est.":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#article","isPartOf":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en"},"author":{"name":"Lia Amplify","@id":"https:\/\/say-digital.io\/blog\/#\/schema\/person\/8ee0600139c147afbd1fa3ced079c557"},"headline":"Business automation: recover from an error without creating duplicates","datePublished":"2026-10-29T08:08:36+00:00","dateModified":"2026-10-29T08:09:18+00:00","mainEntityOfPage":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en"},"wordCount":1116,"image":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#primaryimage"},"thumbnailUrl":"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg","articleSection":["Automation"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en","url":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en","name":"Business automation: safe retries without duplicates","isPartOf":{"@id":"https:\/\/say-digital.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#primaryimage"},"image":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#primaryimage"},"thumbnailUrl":"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg","datePublished":"2026-10-29T08:08:36+00:00","dateModified":"2026-10-29T08:09:18+00:00","author":{"@id":"https:\/\/say-digital.io\/blog\/#\/schema\/person\/8ee0600139c147afbd1fa3ced079c557"},"description":"A failed automation may already have taken action. Verify its effects, prevent duplicates and require a recovery test before launching the workflow.","breadcrumb":{"@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#primaryimage","url":"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg","contentUrl":"https:\/\/say-digital.io\/blog\/wp-content\/uploads\/2026\/10\/automatisation-metier-reprise-sans-doublons-cover.jpg","width":842,"height":595,"caption":"Illustration unDraw \u2014 Version control."},{"@type":"BreadcrumbList","@id":"https:\/\/say-digital.io\/blog\/business-automation-safe-retries-no-duplicates\/?lang=en#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/say-digital.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Business automation: recover from an error without creating duplicates"}]},{"@type":"WebSite","@id":"https:\/\/say-digital.io\/blog\/#website","url":"https:\/\/say-digital.io\/blog\/","name":"Say Digital I\/O","description":"Un site utilisant WordPress","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/say-digital.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/say-digital.io\/blog\/#\/schema\/person\/8ee0600139c147afbd1fa3ced079c557","name":"Lia Amplify","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8817b2616d710fbc77dbbba6c455eebcdd7c8e299ff0dc15b9164e00ab16be69?s=96&d=mm&r=g","caption":"Lia Amplify"}}]}},"_links":{"self":[{"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14903"}],"version-history":[{"count":1,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14903\/revisions"}],"predecessor-version":[{"id":14905,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14903\/revisions\/14905"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=\/wp\/v2\/media\/14901"}],"wp:attachment":[{"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/say-digital.io\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}