v30

latestOpenAPI 3.0.0raw.githubusercontent.com2026-04-22116135580.0 KB
Users
Bulk operations

Bulk set preferences

Bulk sets the preferences for up to 1,000 users at a time. The preference set :id can be either default or a tenant.id. Learn more about per-tenant preferences. Note that this is a destructive operation and will replace any existing users' preferences with the preferences sent.

post/v1/users/bulk/preferences

Request body

user_idsstring[] required

A list of user IDs.

Example request

{
  "preferences": {
    "__persistence_strategy__": "merge",
    "categories": {
      "marketing": false,
      "transactional": {
        "channel_types": {
          "email": false
        }
      }
    },
    "channel_types": {
      "email": true
    },
    "channels": {
      "2f641633-95d3-4555-9222-9f1eb7888a80": {
        "conditions": [
          {
            "argument": "US",
            "operator": "equal_to",
            "variable": "recipient.country_code"
          }
        ]
      },
      "aef6e715-df82-4ab6-b61e-b743e249f7b6": true
    },
    "commercial_subscribed": true,
    "workflows": {
      "dinosaurs-loose": {
        "channel_types": {
          "email": false
        }
      }
    }
  },
  "user_ids": [
    "user_1",
    "user_2"
  ]
}

Response

OK

__typenamestring required

The typename of the schema.

completed_atstring date-time nullable

Timestamp when the bulk operation was completed.

error_countinteger

The number of failed operations.

estimated_total_rowsinteger required

The estimated total number of rows to process.

failed_atstring date-time nullable

Timestamp when the bulk operation failed.

idstring uuid required

Unique identifier for the bulk operation.

inserted_atstring date-time required

Timestamp when the resource was created.

namestring required

The name of the bulk operation.

processed_rowsinteger required

The number of rows processed so far.

progress_pathstring uri

The URI to the bulk operation's progress.

started_atstring date-time nullable

Timestamp when the bulk operation was started.

status'queued' | 'processing' | 'completed' | 'failed' required

The status of the bulk operation.

success_countinteger required

The number of successful operations.

updated_atstring date-time required

The timestamp when the resource was last updated.

Example response

{
  "__typename": "BulkOperation",
  "completed_at": null,
  "error_count": 0,
  "error_items": [],
  "estimated_total_rows": 1000,
  "failed_at": null,
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "inserted_at": "2024-05-22T12:00:00Z",
  "name": "Bulk operation name",
  "processed_rows": 0,
  "progress_path": "https://api.switchboard.com/v1/bulk_operations/123e4567-e89b-12d3-a456-426614174000",
  "started_at": null,
  "status": "processing",
  "success_count": 0,
  "updated_at": "2024-05-22T12:00:00Z"
}