# Available effects in promotion rules

> This page lists the available effects in promotion rules.

> For the complete documentation index, see [llms.txt](https://docs.talon.one/llms.txt).

In promotion rules, effects are triggered when all or some of the conditions of the rule
are valid, depending on whether **all** or **at least one** condition is [set to be true](/docs/product/rules/conditions/use-conditions.md#use-more-than-one-condition-in-the-same-rule).
Effects follow the logic `WHEN this happens THEN do that`.

You can trigger effects to send a notification, apply a discount to your customer's
session, or create a referral code.

Promotion rules also have failure effects. Failure effects define what happens when one
or more conditions are not met. You can set [notifications](/docs/product/rules/effects/use-effects.md#create-a-notification)
and [custom effects](#custom-effects) as failure effects.

:::note Note for developers
The effects triggered by Talon.One are returned to your website/integration layer
and it is up to you and your development team to decide how to apply them.

Learn how to process effects in the [Developer docs](/docs/dev/get-started/overview)
and see the JSON structure of each of them on the [API effects
page](/docs/dev/integration-api/api-effects).
:::

The effects available in promotion rules are sorted by these categories:

- [Discount effects](#discount-effects)
- [Incentives](#incentives)
- [Create effects](#create-effects)
- [Update effects](#update-effects)
- [Achievement effects](#achievement-effects)
- [Webhooks](#webhooks)
- [Custom effects](#custom-effects)

:::note
Most of the effects are always available, but some are only available when you [enable specific
features in your campaign](/docs/product/campaigns/settings/manage-campaign-features).
:::

## Discount effects

| Effect name                                                                                                           | Description                                                                                                                                                                | API effect                                                                                              |
| --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [Discount session total](/docs/product/rules/effects/use-effects.md#discount-session-total)                           | Applies a discount to the total value of a customer session.                                                                                                        | [`setDiscount`](/docs/dev/integration-api/api-effects.md#setdiscount)                                   |
| [Discount individual items](/docs/product/rules/effects/use-effects.md#discount-individual-items)                     | Applies a discount to certain items or their additional cost in the cart.Eligible items are discounted one by one.                                           | [`setDiscountPerItem`](/docs/dev/integration-api/api-effects.md#setdiscountperitem)                     |
| [Discount individual items pro rata](/docs/product/rules/effects/use-effects.md#discount-individual-items-pro-rata)   | Applies a pro rata discount to certain items in the cart.                                                                                                           | [`setDiscountPerItem`](/docs/dev/integration-api/api-effects.md#setdiscountperitem)                     |
| [Discount bundles pro rata](/docs/product/rules/effects/use-effects.md#discount-bundles-pro-rata)                     | Applies a pro rata discount to the items in one or more [bundles](/docs/product/rules/create-and-manage-bundles.md).                                                       | [`setDiscountPerItem`](/docs/dev/integration-api/api-effects.md#setdiscountperitem)                     |
| [Discount individual item in bundles](/docs/product/rules/effects/use-effects.md#discount-individual-item-in-bundles) | Applies a discount to a single item in a bundle. Select whether to distribute the discount pro rata across all items in the bundle, or apply it to the selected item only. | [`setDiscountPerItem`](/docs/dev/integration-api/api-effects.md#setdiscountperitem)                     |
| [Discount additional cost](/docs/product/rules/effects/use-effects.md#discount-additional-costs)                      | Applies a discount to an additional cost, such as shipping costs or transaction fees.                                                                               | [`setDiscountPerAdditionalCost`](/docs/dev/integration-api/api-effects.md#setdiscountperadditionalcost) |
| [Discount additional cost per item](/docs/product/rules/effects/use-effects.md#discount-additional-costs-per-item)    | Applies a discount to an additional cost, such as a shipping cost, applied to an individual cart item.                                                              | [`setDiscountPerAdditionalCost`](/docs/dev/integration-api/api-effects.md#setdiscountperadditionalcost) |

## Incentives

| Effect name                                                                                                       | Description                                                                                                                                                             | API effect                                                                                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Add free item](/docs/product/rules/effects/use-effects.md#add-a-free-item)                                       | Adds one or more free items to a customer's session.                                                                                                             | [`addFreeItem`](/docs/dev/integration-api/api-effects.md#addfreeitem)                                                                                                       |
| [Add loyalty points](/docs/product/rules/effects/use-effects.md#add-loyalty-points)                               | Adds loyalty points per session total to a customer's wallet or to a loyalty card.The loyalty feature must be enabled in the campaign.                    | [`addLoyaltyPoints`](/docs/dev/integration-api/api-effects.md#addloyaltypoints) [`changeLoyaltyTierLevel`](/docs/dev/integration-api/api-effects.md#changeloyaltytierlevel) |
| [Add loyalty points per item](/docs/product/rules/effects/use-effects.md#add-loyalty-points-per-cart-item)        | Adds loyalty points per cart item to a customer's wallet or to a loyalty card.The loyalty feature must be enabled in the campaign.                        | [`addLoyaltyPoints`](/docs/dev/integration-api/api-effects.md#addloyaltypoints) [`changeLoyaltyTierLevel`](/docs/dev/integration-api/api-effects.md#changeloyaltytierlevel) |
| [Redeem loyalty points](/docs/product/rules/effects/use-effects.md#redeem-loyalty-points)                         | Allows a customer to use their loyalty points.The loyalty feature must be enabled in the campaign.                                                        | [`deductLoyaltyPoints`](/docs/dev/integration-api/api-effects.md#deductloyaltypoints)                                                                                       |
| [Extend loyalty points expiry date](/docs/product/rules/effects/use-effects.md#extend-loyalty-points-expiry-date) | Extends the expiry date of every active and pending point transaction by a selected duration.The loyalty feature must be enabled in the campaign.         | [`extendLoyaltyPointsExpiryDate`](/docs/dev/integration-api/api-effects.md#extendloyaltypointsexpirydate)                                                                   |
| [Update loyalty points expiry date](/docs/product/rules/effects/use-effects.md#update-loyalty-points-expiry-date) | Updates the expiry date of every active, pending, and unlimited point transaction to a specific date.The loyalty feature must be enabled in the campaign. | [`setLoyaltyPointsExpiryDate`](/docs/dev/integration-api/api-effects.md#setloyaltypointsexpirydate)                                                                         |
| [Award giveaway](/docs/product/rules/effects/use-effects.md#award-a-giveaway)                                     | Grants a giveaway code to the customer.The giveaways feature must be enabled in the campaign.                                                             | [`awardGiveaway`](/docs/dev/integration-api/api-effects.md#awardgiveaway)                                                                                                   |

## Create effects

| Effect name                                                                                        | Description                                                                                                                                                                                                          | API effect                                                                      |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [Create notification](/docs/product/rules/effects/use-effects.md#create-a-notification)            | Displays a notification to the customer.                                                                                                                                                                      | [`showNotification`](/docs/dev/integration-api/api-effects.md#shownotification) |
| [Create referral code](/docs/product/rules/effects/use-effects.md#create-a-referral-code)          | Generates a referral code for your customer.The referrals feature must be [enabled in the campaign](/docs/product/campaigns/settings/manage-campaign-features.md).                                     | [`referralCreated`](/docs/dev/integration-api/api-effects.md#referralcreated)   |
| [Create coupon code](/docs/product/rules/effects/use-effects.md#create-a-coupon-code)              | Generates a coupon code of a gift card for your customer.The coupons feature must be [enabled in the campaign](/docs/product/campaigns/settings/manage-campaign-features.md).                          | [`couponCreated`](/docs/dev/integration-api/api-effects.md#couponcreated)       |
| [Create coupon code reservation](/docs/product/rules/effects/use-effects.md#reserve-a-coupon-code) | Reserves a coupon code so it can only be redeemed by the current customer profile.The coupons feature must be [enabled in the campaign](/docs/product/campaigns/settings/manage-campaign-features.md). | [`reserveCoupon`](/docs/dev/integration-api/api-effects.md#reservecoupon)       |

## Update effects

| Effect name                                                                                                       | Description                                                                                                                           | API effect                                                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Update attribute value](/docs/product/rules/effects/use-effects.md#update-an-attribute-value)                    | Updates the value of a [custom attribute](/docs/product/account/dev-tools/manage-attributes.md).                                      | [`updateAttribute`](/docs/dev/integration-api/api-effects.md#updateattribute)                                                                                 |
| [Update cart item attribute value](/docs/product/rules/effects/use-effects.md#update-a-cart-item-attribute-value) | Updates the value of a [custom attribute](/docs/product/account/dev-tools/manage-attributes.md) for the items in the customer's cart. | [`updateAttribute`](/docs/dev/integration-api/api-effects.md#updateattribute)                                                                                 |
| [Update audience](/docs/product/rules/effects/use-effects.md#update-an-audience)                                  | Adds a customer to or removes them from an [audience](/docs/product/audiences/overview.md).                                           | [`addToAudience`](/docs/dev/integration-api/api-effects.md#addtoaudience) [`removeFromAudience`](/docs/dev/integration-api/api-effects.md#removefromaudience) |

## Achievement effects

{

      
        
          Effect name
          Description
          API effect
        
      
      
        
          
            Update customer progress
          
          
            Updates the progress of the customer in the achievement.
          
          
            <code>increaseAchievementProgress</code>
          
        
      

}

## Webhooks

| Effect name                                                                     | Description                                                                                                                     | API effect |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| Any [webhooks](/docs/product/account/dev-tools/manage-webhooks.md) you created. | To learn how to create webhooks, see the [Developer docs](/docs/product/account/dev-tools/manage-webhooks.md#create-a-webhook). | -          |

## Custom effects

| Effect name                                                                                | Description                                                                                                                   | API effect                               |
| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
| Any [custom effect](/docs/product/account/dev-tools/manage-custom-effects.md) you created. | To learn how to create custom effects, see [Manage custom effects](/docs/product/account/dev-tools/manage-custom-effects.md). | What you define as API name and payload. |

## Related pages

- [API effects](/docs/dev/integration-api/api-effects.md)
- [Manage campaign features](/docs/product/campaigns/settings/manage-campaign-features.md)
- [Create a basic discount](/docs/product/tutorials/coupons/basic-discount.md)
- [Export triggered effects](/docs/product/rules/effects/export-triggered-effects.md)
- [Manage webhooks](/docs/product/account/dev-tools/manage-webhooks.md)
