> For the complete documentation index, see [llms.txt](https://docs.itsaffinity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.itsaffinity.com/product-guides/campaigns/create-a-program.md).

# Create a Program

Navigate to the campaign detail page of the campaign you wish to edit. You can add programs to campaigns when they are in draft mode and also when they are in live mode.

To begin adding a new program, click the add program button.

<figure><img src="/files/SbcMlUQzYG6swtHkGHGQ" alt=""><figcaption></figcaption></figure>

### Set a Program Name

<figure><img src="/files/XPG81JcwZvpeKaVrKtGC" alt=""><figcaption></figcaption></figure>

Begin creating your program by giving it a name. This is an identifier which is just visible to admins. For campaigns which are already active, you can choose to have the created program be immediately active via the keep active checkbox, or you can keep this unchecked and your program will be created in draft mode. In draft mode, no learners will be assigned any trainings until you activate the program.

### Program Level Filters - Ignore Recently Trained and/or Hired

<figure><img src="/files/2kFK5VISozrYxGaYPKFP" alt=""><figcaption></figcaption></figure>

You can optionally choose to filter our learners from the population set in a program by ignoring those who were recently trained on the selected trainings, or those who were recently hired. These are optional fields. You can choose to enable neither, either, or both.

#### Ignore Recently Trained

Setting this will have the program filter out learners who were assigned the trainings in the program group over the designated period. Periods can be in relative number of days from the date the program is activated, or it can be an absolute date.

For example, if a program has three trainings A, B, and C and says to ignore learners who did these trainings in the past 90 days. And, we have a learner "Pat" who has taken training B 30 days ago, and training C, 80 days ago. Then, "Pat" would only be assigned training A.

One a program is activated, this setting can not be edited.

#### Ignore Recently Hired

Setting this will have the program filter out learners who were hired in the program group over the designated period. Periods can be in relative number of days from the date the program is activated, or it can be an absolute date.

For example, if a program specifies to ignore learners who were hired since 2026-01-01 and has targeted the "Engineering" department, then the only "Engineering" department learners who will receive the trainings will be those who started on 2025-12-31 or earlier.

One a program is activated, this setting can not be edited.

{% hint style="info" %}
Important Note: The filtering is applied when you activate the program. The dashboard will still list all eligible learners irrespective of date filters. In our example above, if your "Engineering" team had 40 learners, the dashboard would show 40 learners, even if only 30 of them started before 2025-12-31. When you activate the campaign, you will see only 30 learners were assigned the trainings however.
{% endhint %}

### Designate Learners to the Training

<figure><img src="/files/PzhHRYkR5s0Bc154dQW2" alt=""><figcaption></figcaption></figure>

Next you will designate the learner audience which comprises this program. The learners in your audience will be assigned all trainings within this program once you activate the campaign.

You can designate learners in different ways:

* All learners ⇒ everyone active in your organization
* Department ⇒ only include specific departments
* Join Date ⇒ active learners who joined on or after a certain date
* State/Region ⇒ learners from specific states and regions
* Direct ⇒ directly choose which learners you want to add

### Confirm and Create the Program

<figure><img src="/files/kHfxklghUYZSmP4qlrwC" alt=""><figcaption></figcaption></figure>

Lastly, verify you have set up the name and audience as intendend and create the program. In the next steps you can add trainings to this program.

### Adding Trainings

<figure><img src="/files/DHtaJl24aLz7wkbhET8a" alt=""><figcaption></figcaption></figure>

After creating the program, you can add trainings directly from this experience. You can also choose to come back to this if you are not yet ready to add trainings.

#### 1. Select the program

<figure><img src="/files/Cwh6Vm7z1UYbvsh62fV3" alt=""><figcaption></figcaption></figure>

To begin adding trainings, first confirm the program you intend to add trainings to. This most likely is the last program you have created.

#### 2. Select trainings

<figure><img src="/files/rz3D8x8ELuYPUNg1aBsq" alt=""><figcaption></figcaption></figure>

Select all the trainings you wish to add to this program. You can select one or more.

#### 3. Set Due Dates and Requirements

<figure><img src="/files/gDlrZb9sjNolPu7MrLgQ" alt=""><figcaption></figcaption></figure>

Then select and set the due dates and if this is a required training or if it is optional.

#### 4. Verify and create the training assignments for the program

<figure><img src="/files/WgVTfKSCn22BftEXtBgD" alt=""><figcaption></figcaption></figure>

Finally, verify all of the information looks correct and create the training assignments. If the campaign is in live/active mode, this will immediately assign the trainings to all learners who are in the program's audience. If the campaign is in draft mode, nothing will be assigned when you click create. The trainings will just be prepared.

#### 5. Optionally add more programs

<figure><img src="/files/4iTOwWxJ7xZd05ktyoKL" alt=""><figcaption></figcaption></figure>

Once you finish creating this program, you have the option to continue adding more programs.
