Skip to main content

Advanced Data Handling and Special Considerations

Sequencing dependent transfers with prerequisites and post-actions, and where the platform handles collisions, IDs, rate limits, batching, and logging.

Most transfers are a straightforward create or update. This article covers the cases that need more: sequencing a transfer against data it depends on, breaking bidirectional loops, and where to find the platform's handling for the other concerns that come up during a build.

Prerequisites and post-actions

Sometimes a record cannot transfer on its own. It may depend on other data existing first, or it may require follow-up work once the main record is saved.

  • Prerequisites run before the main transfer to make sure a dependency exists. A common case: an order webhook arrives before the customer webhook. A prerequisite transfers the customer first so the order can link to it instead of failing.

  • Post-actions run after the main transfer to complete related follow-up work, such as creating a deposit ticket or gift card record that accompanies a completed transaction.

Both are handled in TranslationUtilities via HandlePrerequisite and HandlePostActions, which run through DataHandlerFunctionAsync. These calls do not throw on failure, so check the HasErrors field after the call to find out whether an error occurred. If the failure is fatal to your transfer, throw an exception that includes the id and type of the data that failed, so the log is actionable. See Advanced Error Handling & Logging for the exception detail.

Identify prerequisite and post-handling events during discovery, before you build. See Discovery and Planning.

Bidirectional flows and clapback prevention

When data flows both directions between iPaaS.com and an external system, an update you send out can trigger a webhook back to iPaaS.com, which then tries to reprocess the same data you just wrote. That circular loop is a clapback. Prevent it by registering outgoing calls with the clapback tracker using RegisterClapbackCall in TranslationUtilities:

  • Update calls: register the clapback before making the update.

  • Create calls: you do not have an external ID yet, so register the clapback immediately after the create completes and you have the new ID.

Registration tells iPaaS.com to ignore incoming webhooks for that specific record within a short time window, which breaks the loop.

Special considerations index

The other advanced concerns each have a dedicated home. Use this as the map:

Did this answer your question?