Create Alert Configuration

Creates an alert configuration for the authenticated company from one of BambooHR's alert templates, and returns the stored configuration, including its server-assigned id, as a single JSON object.

Use this to add a configuration the company does not have yet. To overwrite one that already exists, use Replace Alert Configuration (replace-alert-configuration) instead; to see what is already configured, use List Alert Configurations (list-alert-configurations). bambooAlertId names the alert template the configuration is built on and comes from List Alert Templates (list-alert-templates). An alert configuration sends scheduled email to people; to receive a programmatic HTTP callback when employee data changes instead, use Webhooks > Create Webhook (create-webhook).

The configuration is live as soon as it is created and begins sending on the schedule it defines. Nothing limits a template to one configuration, so repeating this call with the same bambooAlertId adds a second configuration rather than replacing the first, and no endpoint deletes an alert configuration once it exists. The returned object also carries additionalRecipientEmails, employeeIds, listValueIds, and userIds; this API never stores those, so scope an alert's audience with filterListValueIds and the sendTo* properties instead.

Access is all-or-nothing rather than per-record. An authenticated caller without view access to the company's Email Alerts settings receives 403 instead of a partial success.

OAuth Scopes: alerts.write

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for creating or updating an alert configuration. Only bambooAlertId is required; every other property falls back to a server-side default when omitted. The configuration's own id, its editorUserId, and its lastEdited timestamp are assigned by the server and must not be sent.

integer
required

Identifier of the alert template this configuration is based on, taken from the id field of List Alert Templates (list-alert-templates). The template catalog is global rather than per-company, and an identifier that is not in the catalog is rejected. 0 is rejected as a missing value; there is no sentinel for "any alert".

string
enum
Defaults to daily

How often the alert runs.

Allowed:
≤ 32767

How far ahead of the due date the alert fires, counted in units of dueInterval. Only meaningful for alert templates that track a due date. Omitted on a replace resets this to null.

enum

The unit that dueWithin is counted in. Omitted on a replace resets this to null.

boolean
Defaults to true

Whether the alert should be sent to employees.

boolean
Defaults to false

Whether the alert should be sent to managers.

boolean
Defaults to false

Whether the alert should be sent to admins.

Custom body text for the alert email. Limited to 1024 bytes; multibyte characters consume more than one byte each. Null uses the alert template's default body, and omitting it on a replace resets this to null.

Custom subject line for the alert email. Limited to 250 bytes; multibyte characters consume more than one byte each. Null uses the alert template's default subject, and omitting it on a replace resets this to null.

enum

Groups the recipients of a summary-style alert by this employee attribute. Null applies no grouping, and omitting it on a replace resets this to null.

boolean
Defaults to true

Whether the training covered by a training alert should be limited to required training.

Time of day the alert is sent, formatted as HH:MM:SS and interpreted in runAtTimeZone. Minutes and seconds are not optional: an HH:MM value is rejected. Omitted on a replace resets this to null.

IANA time zone name that runAtTime is evaluated in, such as America/Denver. Abbreviations such as MST are rejected. Null evaluates runAtTime in the company's own time zone, and omitting it on a replace resets this to null.

boolean
Defaults to false

Whether the alert should include position.

boolean
Defaults to false

Whether the alert should include location.

filterListValueIds
array of integers

List value IDs the alert is scoped to. Accepted values are the options[].id values of the employee filter list fields: Department, Division, Location, Job Title, Employment Status, and Status, plus Employment Type and Team on accounts where those fields are enabled. Look the IDs up with Account Information > List List Fields (list-list-fields); an ID belonging to any other list field is rejected. An empty array leaves the alert unscoped, and omitting it on a replace clears all list-value scoping. This is the only recipient-scoping property the API stores.

filterListValueIds
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

401

Unauthorized.

Language
Credentials
OAuth2
Missing 1 required scope
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json