Skip to content

Campaigns

Access certification campaigns allow key stakeholders to periodically review users’ access to resources. Okta can then modify resource access, based on stakeholder reviews. Manage campaign tasks with the following campaign APIs.

See Identity Governance for more information on access certification campaigns and Identity Governance.

Create a campaign

Request

OAuth 2.0 scope:
  • okta.governance.accessCertifications.manage
Admin roles:
  • ACCESS_CERTIFICATIONS_ADMIN

Creates a campaign that governs access to resources.

Specify the following for a campaign:

  • resourceSettings: Which resources are subject to review
  • principalScopeSettings: Which users with access to the resources are subject to review
  • scheduleSettings: The schedule of the campaign
  • reviewerSettings: Who needs to review access
  • remediationSettings: What needs to be done after access is reviewed
  • notificationSettings: Configure automatic notifications to a campaign creator or reviewer

Notes:

Bodyapplication/jsonrequired

Specifies the characteristics of a single campaign

namestring, [ 1 .. 255 ] charactersrequired

Name of the campaign. Maintain some uniqueness when naming the campaign as it helps to identify and filter for campaigns when needed.

descriptionstring, <= 1000 characters

Campaign description

campaignTypestring(campaign-type)

Identifies the campaign as a resource (RESOURCE) or an identity (USER) campaign

Default:"RESOURCE"
Enum ValueDescription
RESOURCE

Certify access to resources in a campaign

USER

Certify access for an identity (user or AI agent) in a campaign

scheduleSettingsobject(schedule-settings-mutable)required

Scheduler specific settings.

A campaign can be a ONE_OFF or a RECURRING campaign.

You can't provide both in the campaign definition.

resourceSettingsobject(resource-settings-mutable)required

Resource specific properties

principalScopeSettingsobject(principal-scope-settings-mutable)

An array of Okta specific resource id for which access is being reviewed.

reviewerSettingsobject(reviewer-settings-mutable)required

Reviewer settings for the access certification campaign

notificationSettingsobject(notification-settings)

Settings for email notifications to be sent to the reviewers at different stages of a campaign. All properties are optional.

remediationSettingsobject(remediation-settings)required

Specifies the action to be taken after a reviewer makes a decision to APPROVE or REVOKE the access, or if the campaign was CLOSED and there was no response from the reviewer

campaignTierstring(campaign-tier)

Indicates the minimum required SKU to manage the campaign

Enum:"BASIC""PREMIUM"
reportingSettingsobject(reporting-settings-mutable)

Reporting properties for processing post-completed campaigns

POST
/governance/api/v1/campaigns
curl -i -X POST \
  https://okta-subdomain.pixtulate.com/governance/api/v1/campaigns \
  -H 'Content-Type: application/json' \
  -d '{
    "campaignType": "RESOURCE",
    "description": "Group Campaign | User Reviewer Expression",
    "name": "Group Campaign | User Reviewer Expression",
    "status": "ACTIVE",
    "scheduleSettings": {
      "startDate": "2024-10-04T13:43:40.000Z",
      "timeZone": "America/New_York",
      "durationInDays": 30,
      "type": "ONE_OFF"
    },
    "resourceSettings": {
      "targetTypes": [
        "GROUP"
      ],
      "targetResources": [
        {
          "resourceType": "GROUP",
          "resourceId": "00gg2gzn7m1Aw2zAs1d7"
        }
      ]
    },
    "principalScopeSettings": {
      "type": "USERS"
    },
    "reviewerSettings": {
      "selfReviewDisabled": true,
      "justificationRequired": true,
      "reviewerScopeExpression": "user.profile.reviewerId",
      "type": "REVIEWER_EXPRESSION",
      "fallBackReviewerId": "00u3tm6uw9Cx4Sn8H1d7",
      "reviewerId": "00u3tm6uw9Cx4Sn8H1d7",
      "bulkDecisionDisabled": true
    },
    "notificationSettings": {
      "notifyReviewPeriodEnd": true,
      "notifyReviewerWhenOverdue": false,
      "notifyReviewerDuringMidpointOfReview": true,
      "remindersReviewerBeforeCampaignCloseInSecs": [
        86400
      ],
      "notifyReviewerWhenReviewAssigned": true,
      "notifyReviewerAtCampaignEnd": true
    },
    "remediationSettings": {
      "accessRevoked": "DENY",
      "accessApproved": "NO_ACTION",
      "noResponse": "NO_ACTION"
    },
    "reportingSettings": {
      "createReportingPackageEnabled": true
    }
  }'

Responses

A successful campaign create response

Headers
X-Rate-Limit-Limitinteger, >= 1required

The rate-limit ceiling for the current request

Example:60
X-Rate-Limit-Remaininginteger, >= 0required

The number of requests left for the current rate-limit window

Example:60
X-Rate-Limit-Resetinteger, >= 0required

The time when the rate limit resets, specified in UTC epoch time (in seconds)

Example:1609459200
Bodyapplication/json
idstring, non-emptyrequired

Unique identifier for the object

createdBystring, (okta-user-id), [ 1 .. 20 ] characters(created-by)read-onlyrequired

The id of the Okta user who created the resource

createdstring, (date-time)(created)read-onlyrequired

The ISO 8601 formatted date and time when the resource was created

lastUpdatedstring, (date-time)(last-updated)read-onlyrequired

The ISO 8601 formatted date and time when the object was last updated

lastUpdatedBystring, (okta-user-id), [ 1 .. 20 ] characters(last-updated-by)read-onlyrequired

The id of the Okta user who last updated the object

namestring, [ 1 .. 255 ] charactersrequired

Name of the campaign. Maintain some uniqueness when naming the campaign as it helps to identify and filter for campaigns when needed.

descriptionstring, <= 1000 characters

Human readable description

campaignTypestring(campaign-type)

Identifies the campaign as a resource (RESOURCE) or an identity (USER) campaign

Default:"RESOURCE"
Enum ValueDescription
RESOURCE

Certify access to resources in a campaign

USER

Certify access for an identity (user or AI agent) in a campaign

scheduleSettingsobject(schedule-settings-read-only)required

Scheduler specific settings.

A campaign can be a ONE_OFF or a RECURRING campaign.

You can't provide both in the campaign definition.

resourceSettingsobject(resource-settings-mutable)required

Resource specific properties

principalScopeSettingsobject(principal-scope-settings-mutable)

An array of Okta specific resource id for which access is being reviewed.

reviewerSettingsobject(reviewer-settings-mutable)required

Reviewer settings for the access certification campaign

notificationSettingsobject(notification-settings)

Settings for email notifications to be sent to the reviewers at different stages of a campaign. All properties are optional.

remediationSettingsobject(remediation-settings)required

Specifies the action to be taken after a reviewer makes a decision to APPROVE or REVOKE the access, or if the campaign was CLOSED and there was no response from the reviewer

recurringCampaignIdstring or null, [ 1 .. 20 ] characters

ID of the recurring campaign if this campaign was created as part of a recurring schedule.

reportingSettingsobject(reporting-settings-mutable)

Reporting properties for processing post-completed campaigns

statusstring(campaign-status)required
Enum:"SCHEDULED""LAUNCHING""ACTIVE""COMPLETED""DELETED""ERROR"
Response
The response from a flow that creates a resource campaign for all users assigned to a specific Okta group. A specific user is assigned as the reviewer based on an Okta Expression. If this user isn't resolved, a specific fallback reviewer is used.
{ "_links": { "launchCampaign": {}, "endCampaign": {}, "reviews": {}, "self": {} }, "id": "icindtwi8SY3MVP1M1d6", "createdBy": "00u4oll01llSoXHEw1d7", "created": "2024-10-04T13:43:35Z", "lastUpdated": "2024-10-04T13:43:35Z", "lastUpdatedBy": "00u4oll01llSoXHEw1d7", "name": "Group Campaign | User Reviewer Expression", "description": "Group Campaign | User Reviewer Expression", "campaignType": "RESOURCE", "scheduleSettings": { "type": "ONE_OFF", "startDate": "2024-10-04T09:43:40-04:00", "durationInDays": 30, "timeZone": "America/New_York", "endDate": "2024-11-03T08:43:40-05:00" }, "resourceSettings": { "targetTypes": [], "targetResources": [] }, "principalScopeSettings": { "type": "USERS", "excludedUserIds": [], "userIds": [], "groupIds": [], "includeOnlyActiveUsers": false }, "reviewerSettings": { "type": "REVIEWER_EXPRESSION", "reviewerScopeExpression": "user.profile.reviewerId", "fallBackReviewerId": "00u3tm6uw9Cx4Sn8H1d7", "selfReviewDisabled": true, "justificationRequired": true, "bulkDecisionDisabled": false }, "notificationSettings": { "notifyReviewerWhenReviewAssigned": true, "notifyReviewerAtCampaignEnd": true, "remindersReviewerBeforeCampaignCloseInSecs": [], "notifyReviewerWhenOverdue": false, "notifyReviewerDuringMidpointOfReview": true, "notifyReviewPeriodEnd": true }, "remediationSettings": { "accessApproved": "NO_ACTION", "accessRevoked": "DENY", "noResponse": "NO_ACTION" }, "status": "SCHEDULED" }