# Create achievements

> Only users with permissions to manage achievements can access this feature.

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

Create an [achievement](/docs/product/achievements/overview.md) to check if a customer has reached a defined target. You can create achievements in
the Campaign Manager or through the [Management API](/management-api#tag/Achievements/operation/createAchievement).

Select the type of achievement you want to create:

<ContentSwitcher selects={[
  {
    label: 'Recurrence type',
    options: ['One-time', 'Recurring on expiration', 'Recurring on completion'],
    learnMoreLink: '/docs/product/achievements/overview#achievement-types',
  },
  {
    label: 'Activation policy',
    options: ['User action', 'Fixed schedule'],
    hideWhen: {'Recurrence type': 'Recurring on completion'},
  }
]}>

<Case when={{'Recurrence type': 'One-time', 'Activation policy': 'User action'}}>

1. Click <Achievements className="icon"/> **Achievements** on the leftmost menu,
   then click <Add className="icon"/> **Create Achievement**.
2. Select **One-time** as the recurrence type, then select **User action**.
3. In **Name**, enter a display name for the achievement. The name must begin
   with a letter.
4. In **API name**, type an identifier for the achievement that can be used for
   integration purposes. The API name must begin with a letter and cannot exceed `1000` characters.
5. (Optional) In **Description**, enter a description to help you identify the
   achievement.
6. In **Target**, enter the target value the customer must reach to complete the
   achievement.
7. (Optional) Select **End progress on achieving target** to stop a customer's
   progress in an achievement after they reach the target.
8. (Optional) Select **Allow progress rollback in completed achievements** to
   enable the rollback of customer progress after the achievement has been
   completed.
9. In **Achievement period**, define the period after which the achievement ends
   for each customer.For example, if you set the achievement period to
   `1 month`, you can select the **Last day of the month** checkbox for the
   achievement to end on the last day of the month at 23:59:59.
10. In **Time zone**, select the reference time zone.
11. In **Environment**, select the environment for your achievement.
12. In **Connected Applications**, select the Applications where you want to use
    the achievement. You can only connect Applications of the same environment
    as your achievement.
13. Click **Create Achievement**.

</Case>

<Case when={{'Recurrence type': 'One-time', 'Activation policy': 'Fixed schedule'}}>

1. Click <Achievements className="icon"/> **Achievements** on the leftmost menu,
   then click <Add className="icon"/> **Create Achievement**.
2. Select **One-time** as the recurrence type, then select **Fixed schedule**.
3. In **Name**, enter a display name for the achievement. The name must begin
   with a letter.
4. In **API name**, type an identifier for the achievement that can be used for
   integration purposes. The API name must begin with a letter and cannot exceed `1000` characters.
5. (Optional) In **Description**, enter a description to help you identify the
   achievement.
6. In **Target**, enter the target value the customer must reach to complete the
   achievement.
7. (Optional) Select **End progress on achieving target** to stop a customer's
   progress in an achievement after they reach the target.
8. (Optional) Select **Allow progress rollback in completed achievements** to
   enable the rollback of customer progress after the achievement has been
   completed.
9. Set the following options:
   - In **Achievement start**, set the achievement start date for all customers
     in the campaign. Individually, the achievement for each customer starts
     when the customer makes their first progress.
   - In **Achievement end**, set the achievement end date for all customers in
     the campaign.
10. In **Time zone**, select the reference time zone.
11. In **Environment**, select the environment for your achievement.
12. In **Connected Applications**, select the Applications where you want to use
    the achievement. You can only connect Applications of the same environment
    as your achievement.
13. Click **Create Achievement**.

</Case>

<Case when={{'Recurrence type': 'Recurring on expiration', 'Activation policy': 'User action'}}>

1. Click <Achievements className="icon"/> **Achievements** on the leftmost menu,
   then click <Add className="icon"/> **Create Achievement**.
2. Select **On expiration** as the recurrence type, then select **User action**.
3. In **Name**, enter a display name for the achievement. The name must begin
   with a letter.
4. In **API name**, type an identifier for the achievement that can be used for
   integration purposes. The API name must begin with a letter and cannot exceed `1000` characters.
5. (Optional) In **Description**, enter a description to help you identify the
   achievement.
6. In **Target**, enter the target value the customer must reach to complete the
   achievement.
7. (Optional) Select **End progress on achieving target** to stop a customer's
   progress in an achievement after they reach the target.
8. (Optional) Select **Allow progress rollback in completed achievements** to
   enable the rollback of customer progress after the achievement has been
   completed.
9. In **Reset every**, define the period after which the achievement ends and
   resets for each customer.For example, if you set the achievement period
   to `1 month`, you can select the **Last day of the month** checkbox for the
   achievement to reset on the last day of the month at 23:59:59.

   :::note
   The Rule Engine calculates the **Reset every** period by adding the selected
   reset frequency to the achievement start date. For example, for a reset
   frequency of 1 month, an achievement that starts on May 1 resets on June 1.
   If a valid date does not exist, the Rule Engine uses the next available date.
   For example, an achievement that starts on January 31 resets on March 1.
   :::

10. In **Time zone**, select the reference time zone.
11. In **Environment**, select the environment for your achievement.
12. In **Connected Applications**, select the Applications where you want to use
    the achievement. You can only connect Applications of the same environment
    as your achievement.
13. Click **Create Achievement**.

</Case>

<Case when={{'Recurrence type': 'Recurring on expiration', 'Activation policy': 'Fixed schedule'}}>

1. Click <Achievements className="icon"/> **Achievements** on the leftmost menu,
   then click <Add className="icon"/> **Create Achievement**.
2. Select **On expiration** as the recurrence type, then select **Fixed
   schedule**.
3. In **Name**, enter a display name for the achievement. The name must begin
   with a letter.
4. In **API name**, type an identifier for the achievement that can be used for
   integration purposes. The API name must begin with a letter and cannot exceed `1000` characters.
5. (Optional) In **Description**, enter a description to help you identify the
   achievement.
6. In **Target**, enter the target value the customer must reach to complete the
   achievement.
7. (Optional) Select **End progress on achieving target** to stop a customer's
   progress in an achievement after they reach the target.
8. (Optional) Select **Allow progress rollback in completed achievements** to
   enable the rollback of customer progress after the achievement has been
   completed.
9. Set the following options:
   - In **Achievement start**, set the achievement start date for all customers
     in the campaign. Individually, the achievement for each customer starts
     when the customer makes their first progress.
   - In **Reset every**, define the period after which the achievement ends and
     resets for each customer relative to the achievement start.
   - (Optional) In **Achievement end**, set the achievement end date for all
     customers in the campaign.

   :::note
   The Rule Engine calculates the **Reset every** period by adding the selected
   reset frequency to the achievement start date. For example, for a reset
   frequency of 1 month, an achievement that starts on May 1 resets on June 1.
   If a valid date does not exist, the Rule Engine uses the next available date.
   For example, an achievement that starts on January 31 resets on March 1.
   :::

10. In **Time zone**, select the reference time zone.
11. In **Environment**, select the environment for your achievement.
12. In **Connected Applications**, select the Applications where you want to use
    the achievement. You can only connect Applications of the same environment
    as your achievement.
13. Click **Create Achievement**.

</Case>

<Case when={{'Recurrence type': 'Recurring on completion'}}>

1. Click <Achievements className="icon"/> **Achievements** on the leftmost menu,
   then click <Add className="icon"/> **Create Achievement**.
2. Select **On completion** as the recurrence type.
3. In **Name**, enter a display name for the achievement. The name must begin
   with a letter.
4. In **API name**, type an identifier for the achievement that can be used for
   integration purposes. The API name must begin with a letter and cannot exceed `1000` characters.
5. (Optional) In **Description**, enter a description to help you identify the
   achievement.
6. In **Target**, enter the target value the customer must reach to complete the
   achievement.
7. In **Environment**, select the environment for your achievement.
8. In **Connected Applications**, select the Applications where you want to use
   the achievement. You can only connect Applications of the same environment as
   your achievement.
9. Click **Create Achievement**.

:::note
Recurring on completion achievements use UTC as the time zone by default.
:::

</Case>

</ContentSwitcher>

:::note
After creating the achievement, the following applies:
- If a customer has made progress, you can only edit the **Name**, **API name**,
  and **Description**.
- If the achievement is referenced in a campaign rule, you cannot change the
  **API name** or remove the connected Applications used by that rule.
:::

## Related pages

- [Manage achievements](/docs/product/achievements/manage-achievements.md)
- [Achievement attributes](/docs/dev/concepts/attributes.md)
