Remote Asset Recovery - Bulk Upload

Add multiple employees to a recovery campaign in one request.

POST
/api/v1/recover/campaign/employee/bulk-add

Description

The Bulk Upload API enables customers to add multiple employees (up to 100) to a recovery campaign in one request. This simplifies large-scale data entry by accepting employee objects under a single campaign. A successful upload returns unique recovery codes for each entry.

Request

Headers

HeaderValueRequired
AuthorizationBearer <token>Yes
Content-Typeapplication/jsonYes

Request Body

ParameterTypeRequiredDescription
campaign_numbernumberYesUnique identifier of the recovery campaign
usersarrayYesArray of employee objects (1-100 employees recommended)

Employee Object Fields

ParameterTypeRequiredDescription
users[].campaign_numbernumberYesUnique identifier of the recovery campaign
users[].work_emailstringConditionalEmployee work email address. Required unless recovery_reason is 3 (Offboarding)
users[].personal_emailstringConditionalEmployee personal email address. Required when recovery_reason is 3 (Offboarding); optional otherwise
users[].notification_email_preferencestringNoWhere recovery email and SMS updates are sent: work or personal. Defaults to work. Falls back to the other contact when the preferred field is empty
users[].firstnamestringYesFirst name of the employee
users[].lastnamestringYesLast name of the employee
users[].work_phonestringConditionalWork phone number. Required unless recovery_reason is 3 (Offboarding)
users[].personal_phonestringConditionalPersonal phone number (digits; without country code). Required when recovery_reason is 3 (Offboarding); optional otherwise. Dial country is taken from address country
users[].address_line_1stringYesPrimary address line
users[].address_line_2stringNoSecondary address line
users[].citystringYesCity of the employee address
users[].statestringConditionalState name. Required when is_state_required is true for country. See GET /api/v1/countries.
users[].zipstringYesZIP or postal code
users[].countrystringYesISO 2-letter country code
users[].recovery_reasonnumberNoRecovery Reason for the user. 1 = Refresh, 2 = Break-Fix, 3 = Offboarding, 4 = Other
users[].recovery_reason_notestringNoRecovery reason note is required only if recovery_reason is 4 (Other)
users[].departmentstringNoDepartment name (not ID). Matched case-insensitively for the company; created if missing (minimum 2 characters when creating). Stored as department_id on the recovery employee

Item Object Fields

ParameterTypeRequiredDescription
users[].items[].itemstringYesDevice/item name
users[].items[].item_serial_nostringNoSerial number
users[].items[].item_asset_idstringNoAsset ID
users[].items[].item_imeistringNoIMEI number
users[].items[].custom_field_1stringNoCustom field 1
users[].items[].custom_field_2stringNoCustom field 2
users[].items[].is_legal_holdnumberNoSend 1 to mark device for legal hold

Response

Response Fields

FieldTypeDescription
recovery_codesarrayGenerated recovery codes for each uploaded user

Notes

  • The maximum recommended batch size is 100 employees per request to ensure optimal performance and reliability.
  • Each employee receives a unique recovery code that can be used to track their individual recovery status.
  • Required employee fields include firstname, lastname, city, zip, and country. work_email and work_phone are required unless recovery_reason is 3 (Offboarding). Legacy email and phone are still accepted for backward compatibility. state is required only when GET /api/v1/countries marks the selected country with is_state_required: true. zip is required for all countries.
  • When recovery_reason is Offboarding (3), personal_email and personal_phone are required and work email/phone are optional. For all other reasons, personal contacts are optional. Personal phone country is stored from address country. notification_email_preference accepts work or personal, defaults to work, and applies to both email and SMS.
  • Optional department on each user is a department name (not ID). The API finds an active department for the company by case-insensitive name, or creates one (name must be at least 2 characters), then stores department_id on the recovery employee.
  • If any employee in the batch has validation errors, the entire request may fail. Ensure all data is properly formatted before submission.
  • Recovery codes are generated automatically and returned in the response for record-keeping and tracking purposes.

Related Endpoints

Did this page help you?