Learn how to help your team build confidently (and securely!) in prod in our upcoming Tech Talk: Sign up here.

Summary of the Lifecycle

A campaign in OpsLevel is designed to be an initiative to drive towards a well-defined, measurable outcome with a clear start and end date. As such, a campaign in OpsLevel goes through a set of states throughout its lifecycle from its inception to its completion. Each state has a specific purpose and alters how the campaign owner and service owners view and interact with the campaign.

The table below summarizes these states:

State Description What it means for the Campaign Owner What it means for the Service Owner
DRAFT The campaign is still being defined, and has not yet started.

The campaign owner will be fleshing out the campaign details such as the project brief, filter and checks.

The campaign is visible, but listed only in the main campaigns page

The campaign effectively does not exist yet for the service owner, and they don’t have to view or interact with it in any way yet.

SCHEDULED The campaign is defined and its start date is set at a time in the future.

The campaign owner has completed defining the campaign and set it to start in the future.

There is no work for them necessarily at this stage, but they can proactively communicate about the upcoming campaign to the organization, and of course, still edit any details of the campaign.

The service owner doesn’t have to take any action yet because the campaign hasn’t started, but the campaign is visible to them in the service page, and they can view all the campaign details and understand what is expected of them. The service owners can plan for work towards the upcoming campaign at this stage.

IN PROGRESS The start date of the campaign has passed, but the target date is in the future.

The campaign owners don’t have to do any active work in this stage. They are able to view the progress of their campaigns across services, and if required, can send ad-hoc reminders to individual teams that haven’t completed the work yet. At any point during this state, the campaign owner is able to end the campaign, moving it to the final state of the lifecycle (see below).

The service owners are now expected to get started on fulfilling the checks for the campaign. They have the same visibility as they did in the SCHEDULED state, but the IN PROGRESS campaigns will be sorted higher than SCHEDULED ones by default.

DELAYED Both the start and target dates of the campaign have been passed, but the campaign has not been explicitly ended yet.

The campaign is now taking longer than the campaign owner’s original intended schedule.

Depending on the situation, they can:

  • Choose to end the campaign,
  • Urge service owners to complete the work via sending reminders or
  • Update the schedule to extend the target date, moving the campaign back to the IN PROGRESS.

Service owners who haven’t yet passed the campaign checks for their services have violated the expected deadline.

The urgency to action is emphasized visually by sorting DELAYED campaigns above all others.

ENDED The campaign owner has explicitly ended the campaign (this is the only way to arrive at this state).

The campaign owner chooses explicitly when the campaign ends. As part of ending it, they are able to copy any of the campaign checks to become part of the organization’s Service Maturity rubric to be tracked as an ongoing standard.

Service owners are not expected to take any further actions for an ENDED campaign and will no longer see the campaign appear in any of their regular views.

Although the states are listed in what would be expected to be the “typical” sequence for a campaign’s lifecycle, the campaign can transition between different states through various actions/triggers, as summarized by the following diagram.

Campaign states and their transitions
Campaign states and their transitions

DRAFT: Define the campaign

New Campaign Button
New Campaign Button

Every new campaign starts in the draft state. To create a new campaign, click the “New Campaign” button from the main Campaigns page. The only required information at this stage is a name of the campaign, and which team is the campaign owner (i.e., who is driving the changes being rolled out as part of the campaign?).

A DRAFT campaign is still being fleshed out. While a campaign is in DRAFT state, service owners do not see the campaign appear in their service’s “Campaigns” tab.

A campaign in DRAFT state allows the campaign to complete the following before actually scheduling the campaign to start:

1. Write up the project brief

Markdown editor for Project Brief
Editing the campaign's Project Brief in the Markdown editor

The project brief is a summary about your campaign to communicate to service owners any pertinent information about it (the why, what, how, etc. of the changes being rolled out). It is written in Markdown in the editor and the formatted version will be shown to service owners in the main campaign page as well as in other places such as the Campaigns tab in the service page.

The Project Brief in a new campaign draft is pre-populated with a template with prompts to help the campaign owner get started writing the brief.

2. Define checks

Campaign checks tab in campaign page
Campaign checks tab in campaign page

The campaign owner can express the “completion criteria” of the campaign in the form of checks: these checks will define what you want to be true about a service to fulfill the objectives of the campaign. You can not schedule a campaign without any checks defined because there would be no means to evaluate completion against it.

A campaign’s checks behave the same as checks in the Service Maturity Rubric. The main differences are that campaign checks are only associated to the campaign and apply to services only while the campaign is in progress. For more details about checks, see Getting Started with checks.

3. Identify services in-scope by using a filter

Page for creating a new campaign
Creating a new campaign

Filters let you apply your campaign checks to a subset of your services. You can choose which filter to use with a campaign when first creating the campaign or by editing the campaign (select the “Edit Campaign” option from the settings dropdown menu near the top right of the campaign’s page). If no filter is chosen, the campaign’s checks are applied to all the services in OpsLevel.

Campaign filters apply a campaign’s checks to a subset of services, the same way the filter on a check in the Service Maturity Rubric apply that check to a subset of services. The filter in both these cases are defined the same way, and in fact the same set of filters available for checks on a rubric are available for use with a campaign. For more details about filters, see Checks and Filters.

Transition: When the campaign is fully defined this way, the campaign owner is now ready to schedule the campaign, transitioning it to the next state: SCHEDULED.

SCHEDULED: Campaign starting in future

A campaign is in the SCHEDULED state when:

  • it has its start and target dates defined
  • the start date is some time in the future

Click the “Schedule Campaign” button on the campaign’s page to schedule the campaign when the campaign is in DRAFT mode.

Schedule Campaign button
Schedule Campaign button
Schedule campaign modal
Scheduling a new campaign
  • Start Date: The start date is the day when the campaign officially starts, which means that is the date from which a campaign’s checks apply to the targeted services. The start date can not be a date and time in the past.
  • Target Date: The target date is the deadline by which (ideally) all targeted services should be passing the campaign’s checks. The target date also can not be in the past and it has to be after the chosen start date.

In the SCHEDULED state, the campaign is visible to service owners in the service’s “Campaigns” tab. They are not expected to necessarily take any action yet, but they can see all the details of the upcoming campaign, and can start to prepare for it.

Campaigns tab in individual service page
Campaigns tab in individual service page shows all related campaigns that are active

Campaign owners can choose to “unschedule” a SCHEDULED campaign to return it to the DRAFT state. The “Unschedule campaign” option can be found in the settings dropdown menu in the top right of the campaign page.

'Unschedule campaign' option in menu
You can unschedule a campaign from the main campaign page's dropdown settings menu
Transition: Once the start date arrives, the campaign is automatically transitioned to being IN PROGRESS.

IN PROGRESS: Campaign started

A campaign is IN PROGRESS when:

  • the start date is in the past
  • the target date is in the future

Once the start date has passed, a SCHEDULED campaign automatically transitions to being IN PROGRESS. This state indicates that the campaign’s checks now apply to the target services, and service owners need to start making sure their services are passing the campaign’s checks.

Functionally, nothing changes between the campaign’s SCHEDULED and IN PROGRESS states - both campaign owners and service owners have the same degree of visibility about the campaign and how services are performing against it. The difference in these states is just in the visibility: by default, IN PROGRESS campaigns are sorted higher than SCHEDULED campaigns.

The campaign’s main page shows the campaign’s progress in various ways: proportion of the targeted services passing, proportion of total applicable checks passing, and check results per service.

Individual campaign page
Individual campaign page includes summary statistics and detailed progress per service
Transition: If the campaign’s target date is passed and the campaign owner has not yet ended the campaign, the campaign goes to the DELAYED state.

DELAYED: Campaign not ended by target date

A campaign is DELAYED when:

  • the start and target dates are in the past
  • the campaign has not been ended by the campaign owner yet

Provided the campaign has not been ended yet, after the target date has passed, an IN PROGRESS campaign becomes DELAYED. The state indicates that the campaign is running passed the targeted deadline.

Functionally, nothing is different between the campaign being in the SCHEDULED or IN PROGRESS state for both campaign owners and service owners. The main difference is in the visibility: by default, DELAYED campaigns are sorted above IN PROGRESS and SCHEDULED campaigns to indicate higher urgency. Service owners whose services are still not passing the campaign’s checks are expected to prioritize completing these campaigns.

Campaign owners can follow up and remind such service owners by sending out campaign reminders. Click the “Send Reminder” button on the main campaign page to Slack or email service owners who still have targeted services that are not passing the campaign’s checks.

Send Reminder button
Send Reminder button
Send Reminder modal
Sending a campaign reminder

Service owners will receive a message that includes a custom message from the campaign owner as well as summary information about the campaign and which of their services have yet to complete the campaign.

Example campaign reminder in Slack
Example campaign reminder in Slack
Example campaign reminder in email
Example campaign reminder in email

ENDED: Campaign stopped

A campaign never moves into the ENDED state automatically - it always has to be explicitly ended by the campaign owner. The ENDED state indicates that service owners are not being asked to take action against the campaign checks any longer.

At this stage, the campaign owner has the option to copy a check to the Service Maturity Rubric. This way, the new change introduced by the campaign can now become an ongoing standard for the organization that is automatically enforced by OpsLevel.

To end a campaign, click “End Campaign” from the settings dropdown menu on the campaign page.

'End Campaign' menu option
'End Campaign' menu option

In the modal that comes up when ending a campaign, select any checks to copy to the rubric. Then, select the category and level of the rubric to copy the checks to.

End Campaign modal
You can copy campaign checks to the Rubric when ending a campaign

Once ended, a campaign will no longer show up for service owners in a service page’s “Campaigns” tab. For the campaign owner, ended campaigns are displayed in a table near the bottom of the main Campaigns page.

Main campaigns page