Partner ApiEmail Preferences

Email Preferences

Control which product lifecycle emails Bullseye sends to your managed organizations. Partner-level preferences act as defaults for every organization you manage; each organization can override these defaults individually.

Controllable Email Types

Only product lifecycle emails are controllable via these endpoints. Typical keys include:

KeyDescription
credits_exhaustedSent when an organization runs out of credits
credits_lowSent when credits fall below a threshold
first_visitor_identifiedSent the first time an organization identifies a visitor
subscription_activatedSent when a subscription is activated
subscription_canceledSent when a subscription is canceled
payment_failedSent when a payment fails
renewal_receiptSent on renewal

Values are booleans (true = enabled, false = suppressed).


Get Partner Email Preferences

Returns the partner-level default preferences applied to all managed organizations unless overridden per-org.

Request:

GET /partner/email-preferences

Response:

{
  "preferences": {
    "credits_exhausted": false,
    "credits_low": false,
    "first_visitor_identified": true,
    "subscription_activated": true,
    "subscription_canceled": true,
    "payment_failed": true,
    "renewal_receipt": true
  }
}

Example:

curl -X GET "https://api.app.bullseye.so/api/v1/partner/email-preferences" 
  -H "X-Partner-API-Key: your-api-key"

Update Partner Email Preferences

Sets partner-level defaults. These apply to every managed organization that has not set its own per-org override.

Request:

PUT /partner/email-preferences

Body:

{
  "preferences": {
    "credits_exhausted": false,
    "credits_low": false,
    "first_visitor_identified": true
  }
}

Any keys you omit keep their current value. Unknown keys are rejected.

Response:

{
  "message": "email preferences updated"
}

Returns 200 OK.


Get Organization Email Preferences

Returns the effective (resolved) preferences for a managed organization. Each preference includes whether it was inherited from the partner default or overridden at the org level.

Request:

GET /partner/organizations/{organizationId}/email-preferences

Response:

{
  "preferences": {
    "credits_exhausted": { "enabled": false, "inherited": true },
    "credits_low": { "enabled": false, "inherited": true },
    "first_visitor_identified": { "enabled": true, "inherited": false }
  }
}
  • enabled - whether the email is currently enabled for this organization
  • inherited - true if the value comes from the partner default; false if the org has its own override

Update Organization Email Preferences

Sets per-organization overrides. These take precedence over partner-level defaults.

Request:

PUT /partner/organizations/{organizationId}/email-preferences

Body:

{
  "preferences": {
    "first_visitor_identified": false
  }
}

Response:

{
  "message": "organization email preferences updated"
}

Returns 200 OK.


Reset Organization Email Preferences

Removes per-organization overrides, reverting the organization to inherit partner-level defaults.

Request:

DELETE /partner/organizations/{organizationId}/email-preferences

Response:

{
  "message": "organization email preferences reset"
}

Returns 200 OK.