# Feed Triggers

Feed triggers control **when** your feed runs and tasks are sent to
Asana. Every feed requires one trigger so the plugin knows the exact
point in the form’s lifecycle to execute.

### Available Triggers

- **Form Submission (Free)**
  Runs the feed immediately after a form entry is submitted and created.
  This is the simplest, most common option for creating a task right
  away.
- **Subscription Canceled (Premium)**
  Runs when a subscription linked to a **selected payment feed** is
  canceled. You must pick the related payment feed from the dropdown in
  the trigger settings.
  **Use cases:** Start offboarding, notify teams, or archive accounts
  when a subscription ends.
  **Notes:** Requires a payment add‑on and an active payment feed.
- **Payment Failure (Premium)**
  Runs when a payment associated with the entry fails. No additional
  configuration is needed besides choosing this trigger.
  **Use cases:** Create follow‑up tasks to recover failed payments or
  escalate issues to finance/support.
- **Notification Sent (Premium)**
  Runs when one or more **selected Gravity Forms notifications** are sent. You can
  choose multiple notifications from the dropdown.
  **Use cases:** “Create task after the confirmation email goes out,” or
  trigger follow‑ups tied to a particular notification.
- **Notification Failure (Premium)**
  Runs only when one or more **selected notifications** fail to send (as detected
  by Gravity Forms). You can select multiple notifications.
  **Use cases:** Alert a team when critical emails aren’t delivered so
  someone can follow up manually.

### Notification Merge Tags (Premium)

Feeds using the **Notification Sent** or **Notification Failure**
triggers can put the notification that fired them straight into the task,
through an extra set of merge tags available in the **Task Name** and
**Description**:

| Merge tag                 | Contains                                                                        |
|---------------------------|---------------------------------------------------------------------------------|
| `{notification:subject}`  | The notification's rendered subject line.                                        |
| `{notification:message}`  | The notification's rendered message body.                                        |
| `{notification:to}`       | The recipient address(es) the notification was addressed to.                      |
| `{notification:name}`     | The name of the notification, as it appears in the form's notification list.      |
| `{notification:id}`       | The notification's ID.                                                           |
| `{notification:format}`   | The message format: `html`, `text` or `multipart`.                                |
| `{notification:status}`   | `sent` or `failed`.                                                              |
| `{notification:error}`    | The send error, when there is one. Empty on a successful send.                    |

The body and subject arrive **already rendered**, exactly as the
recipient received them. That matters when a notification contains merge
tags that only exist inside its own send — an add-on that raises a
notification for an event of its own can pass extra data along with it
(for example an error message), and those values have no meaning outside
that notification. `{notification:message}` captures the finished text, so
the task shows the same detail the email did.

The message is the body only: the surrounding HTML document or multipart
envelope that Gravity Forms adds for sending is removed, and unsupported
markup is stripped the same way as in any other description. A body over
60,000 characters is truncated, because Asana rejects a longer
description outright.

These tags are only populated for the two notification triggers. On any
other trigger there is no notification to report, and they resolve to
nothing.

### Using Multiple Triggers

If you want a feed to run on more than one event (e.g., **Form
Submission** *and* **Subscription Canceled**), create **separate
feeds**—one per trigger. If most settings are identical, duplicate the
feed and only change the trigger.

### Conditional Logic

You can pair any trigger with Conditional Logic to control when the feed
actually runs—helpful when you only want tasks created under specific
conditions.
