Abandon Delivery

Abort a delivery from within a Liquid template, intentionally and explicitly. Use this when your template logic determines that the notification should not be sent for the current recipient.

  • Tag name: abandon_delivery

  • Effect: immediately aborts template rendering and marks the delivery as Abandoned

  • Retries: none (intentional non-send)

  • Impressions: not counted

When to use

  • A required resource didn’t resolve (e.g., a remote fetch didn’t produce usable data).

  • Business rules exclude this recipient (e.g., entitlement or audience checks).

Syntax

  • Control tag form:

    • {% abandon_delivery %}

Notes

  • The tag must be executed to take effect; place it in branches that should abort.

  • It does not render any output; rendering stops immediately.

Patterns

Abort when content wasn’t found

{% remote_fetch 'https://cms.example.com/resolve?path={{landing_url}}' alias:doc %}
{% if doc %}
  Read now
{% else %}
  {% abandon_delivery %}
{% endif %}

Abort on entitlement check

{% remote_fetch 'https://paywall.example.com/entitlements?user_id={{profile.user_id}}&doc_id={{landing_url}}' alias:ent %}
{% if ent and ent.allowed %}
  Read now
{% else %}
  {% abandon_delivery %}
{% endif %}

Abort for audience rule

{% if profile.country_code != 'US' %}
  {% abandon_delivery %}
{% endif %}

Behavior and observability

  • Rendering stops immediately when the tag executes.

  • The delivery is recorded as Abandoned (intentional).

Authoring guidance

  • Place the tag inside the else (or unless) branch of your decision logic so it only triggers when appropriate.

  • Keep decision logic simple and explicit so intent is clear in reviews and analytics.

FAQ

  • Can I place it outside an if/else?

    • Yes, but it will always abort. It’s best used conditionally.

  • Does it print anything?

    • No; it halts rendering immediately.

Troubleshooting

  • “It didn’t abort”: Ensure the branch containing the tag actually executed (verify your conditions and aliases).

Last updated