About the Staff Members API

The Staff Members API provides developers with a set of tools to manage the staff members who deliver booking services on a Wix site.

With the StaffMembersService API, your app can create, update, delete, and query staff members, as well as connect and disconnect staff members to and from Wix users. The API also allows you to assign working hours schedules to staff members, enabling them to manage their availability for bookings.

Before you begin

It’s important to note the following points before starting to code:

  • Ensure that the Wix Bookings app is installed and configured on the site before using this API.
  • Every staff member is created with an associated Resource. The resource is a key entity that connects staff members to the Wix Bookings calendar, allowing them to manage their availability and booked sessions.
  • The associated resource is managed (created, updated and deleted) by the Staff Members API, and no additional API is required to manage staff related resources.

Use Cases

Terminology

  • Staff Member: An individual who provides booking services on the site.
  • Resource: An entity associated with a staff member, required for integration with the booking calendar.
  • Working Hours Schedule: The schedule that defines when a staff member is available for bookings.
  • User: A Wix user with access to a site, which may be associated with a Wix Bookings staff member.

For a comprehensive glossary of Wix Bookings terms, see Terminology

See also

Did this help?

Staff Members API: Sample Use Cases and Flows

This article presents possible use cases that your app could support, along with sample flows to implement each use case. These examples can serve as a helpful starting point as you plan your app's functionality.

Connect a Staff Member to a Wix User

By connecting a staff member to a Wix user, you enable the user to manage the staff member's calendar through the Wix back office.

Only a single user can be connected to a single staff member, trying to connect a staff member to a user that is already connected to another staff member will result in an error.

To connect a staff member to a Wix user:

  1. Retrieve Wix Bookings staff members using the Query Staff Members endpoint.

  2. Use the Connect Staff Member to User endpoint to connect a staff member to a Wix user by providing the staff member ID and the user’s email address as parameters. If the email address is not provided, the email address associated with the staff member will be used.

  3. If the email address is not associated with an existing Wix user, an email invite will be sent to the address provided.

  4. To check the connection status, use the Get Staff Member endpoint with ASSOCIATED_IDENTITY_STATUS in the fields parameter.

Assign a Staff Working Hours Schedule

By assigning a custom working hours schedule to a staff member, you can specify their availability for bookings, which will override the default business hours.

To assign a working hours schedule to a staff member:

  1. Retrieve Wix Bookings staff members using the Query Staff Members endpoint, specifying RESOURCE_DETAILS in the fields parameter. The staff member’s events schedule ID is found under the resource property.

  2. Use the Assign Working Hours Schedule to Staff Member endpoint to assign a working hours schedule to a staff member by providing the staff member ID and the working hours schedule ID as parameters. Currently, only the staff’s events schedule ID is supported.

  3. To add or remove working hours from the staff's schedule, use the Events API to create working hours events linked to the staff’s events schedule ID.

Did this help?

Staff Members: Filtering and Sorting

Query endpoints allow you to filter and sort results based on service properties. This article covers field support for filtering and sorting.

Filtering

Specify the filter object in the following format:

Copy
{ "filter": { "fieldName": { "$eq": "value" } } }

The following table shows field support for filters and sorting for the Staff Member object:

FieldSupported FiltersSortable
id$eq, $ne, $exists, $in, $nin, $startsWithSortable
description$eq, $ne, $exists, $in, $nin, $startsWithSortable
name$eq, $ne, $exists, $in, $nin
email$eq, $ne, $exists, $in, $nin
phone$eq, $ne, $exists, $in, $nin
default$eq, $ne, $exists, $in, $nin
associatedWixIdentity.identificationData.contactId$eq, $ne, $exists, $in, $nin, $startsWithSortable
associatedWixIdentity.identificationData.wixUserId$eq, $ne, $exists, $in, $nin, $startsWithSortable
associatedWixIdentity.identificationData.identityType$eq, $ne, $exists, $in, $nin, $startsWithSortable

Sorting

Specify the sort object in the following format:

Copy
{ "sort": [ { "fieldName": "createdDate", "order": "DESC" } ] }

Related content:

Did this help?

Staff Members API Errors

This article outlines error messages that might be issued when calling endpoints of the Staff Members API.

Create Resource Errors

The Create Staff Member endpoints might issue the following error messages:

HTTP status
Error code
Error message
Troubleshooting
INVALID_ARGUMENT (400)NO_IMAGE_FOUNDImage: imageId does not existThe provided image id cannot be resolved by the Wix media API, make sure you first upload an image and use it's ID.

Update Staff Member Errors

The Update Staff Member endpoint might issue the following error messages:

HTTP status
Error code
Error message
Troubleshooting
INVALID_ARGUMENT (400)NO_IMAGE_FOUNDImage: imageId does not existThe provided image id cannot be resolved by the Wix media API, make sure you first upload an image and use it's ID.

Connect Staff Member to User Errors

The Connect Staff Member to User endpoint might issue the following error messages:

HTTP status
Error code
Error message
Troubleshooting
INVALID_ARGUMENT (400)NO_EMAILStaff: staffId has no email and no additional email was providedTo connect a staff member to a user, either the staff should have an email associated with it, or an email should be explicitly stated in the request
INVALID_ARGUMENT (400)STAFF_ALREADY_CONNECTEDStaff: staffId is already connectedThe staff member is already connected to a user.
UNAUTHENTICATED (400)USER_ALREADY_CONNECTEDUser userId already connectedThe user connected to the specified email already has a different staf member associated with it.
ALREADY_EXISTS (400)INVITE_ALREADY_SENTStaff invite for staff: staffId already sentThe email stated (or connected to the staff) in the request already has a pending invite.

Disconnect Staff Member from User Errors

The Disconnect Staff Member to User endpoint might issue the following error messages:

HTTP status
Error code
Error message
Troubleshooting
INVALID_ARGUMENT (400)STAFF_NOT_CONNECTEDStaff: staffId is not connectedThe specified staff member doesn't have a user associated with it.
Did this help?

Staff Member Object


StaffMember is the main entity of Bookings StaffMembers. used to manage staff providing services

Properties
idstringRead-onlyformat GUID

Staff member's ID.


namestringminLength 1maxLength 40

Staff member's name.


emailstringmaxLength 320format EMAIL

Staff member's email address.


phonestringmaxLength 20format PHONE

Staff member's phone number.


descriptionstringmaxLength 500

Description, for example: "The best masseuse in all of the land".


mainMediaMainMedia

The media of the staff.


resourceIdstringRead-onlyformat GUID

The related calendar resource id, same as resource.id. References a resource from the Resources API


resourceResourceRead-only

The related calendar resource. By default only the resource ID is returned. To get the full resource details, use the RESOURCE_DETAILS conditional field.


associatedWixIdentityAssociatedWixIdentityRead-only

The identity of the Wix user associated with the staff member. Read more about Wix identities here


revisionintegerRead-onlyformat int64

Revision number, which increments by 1 each time the staff member is updated. To prevent conflicting changes, the current revision must be passed when updating the staff member.


createdDatestringRead-onlyformat date-time

Represents the time this staff member was created. In YYYY-MM-DDThh:mm:ss.sssZ format.


updatedDatestringRead-onlyformat date-time

Represents the time this staff member was last updated. In YYYY-MM-DDThh:mm:ss.sssZ format.


extendedFieldsExtendedFields

Extensions enabling users to save custom data related to the staff member.


tagsTags

Tags enabling users to classify staff members.

Did this help?

POST

Create Staff Member


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Creates a staff member.

By default any staff member that is created will be linked to the business working hours, allowing customers to book appointments with the staff based on the business working hours.

To modify the working hours of a staff member, use the AssignWorkingHoursSchedule API.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members

Body Params
staffMemberStaffMemberRequired

Staff member to be created.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The created staff member.

Create a staff member.
Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members' \ -H 'Authorization: <AUTH>' \ -d '{ "staffMember": { "name": "Some name" } }'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "name": "Some name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "2", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T13:22:34.236Z" } }
Event TriggersThis method triggers the following events:
Did this help?

GET

Get Staff Member


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a staff member.

Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}

Path Params
staffMemberIdstringRequired

ID of the staff member to retrieve.

Query Params
fieldsArray <string>

Conditional fields to return.

Response Object
staffMemberStaffMember

The retrieved staff member.

Retrieve a staff member
Request
cURL
curl -X GET \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "name": "Some other name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z" } }
Did this help?

DELETE

Delete Staff Member


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Deletes a staff member.

Deletes the resource associated with the staff member.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
DELETE
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}

Path Params
staffMemberIdstringRequired

ID of the staff member to delete.

Response Object
Returns an empty object.
Delete a staff member.
Request
cURL
curl -X DELETE \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039' \ -H 'Authorization: <AUTH>'
Response
JSON
{}
Event TriggersThis method triggers the following events:
Did this help?

PATCH

Update Staff Member


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Updates a staff member.

Each time the staff member is updated, revision increments by 1. You must include current revision of the staff member when updating it. This ensures you're working with the latest service information and prevents unintended overwrites.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
PATCH
https://www.wixapis.com/bookings/v1/staff-members/{staffMember.id}

Path Params
staffMember.idstringRequired

Staff member's ID.

Body Params
staffMemberStaffMemberRequired

Staff member to update.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The updated staff member.

Update a staff member.

Update a staff member, id and revision are required. partial updates are supported.

Request
cURL
curl -X PATCH \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039' \ -H 'Authorization: <AUTH>' \ -d '{ "staffMember": { "name": "Some other name", "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "revision": "2" } }'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "name": "Some other name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Query Staff Members


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Query StaffMembers using WQL - Wix Query Language

For field support for filters, see Staff Members: Supported Filters

Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/query

Body Params
queryQuery

WQL expression.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMembersArray <StaffMember>

The retrieved staff members.


pagingMetadataPagingMetadata

Paging metadata

Query staff members, providing fields parameter to request additional fields.

Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/query' \ -H 'Authorization: <AUTH>' \ -d '{ "query": { "cursorPaging": { "cursor": null, "limit": 100 }, "fields": ["RESOURCE_DETAILS"] } }'
Response
JSON
{ "staffMembers": [{ "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "name": "Some other name", "resourceId": "e0936563-7fd8-4e08-9db0-a327b2cb653e", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z", "resource": { "id": "e0936563-7fd8-4e08-9db0-a327b2cb653e", "working_hours_schedules": [ { "id": "77ee564a-80d5-4ffc-85a3-284df66a0d12", "shared": true } ], "events_schedule": { "id": "7c147d9e-89a8-4e2e-a723-b095db0610c1" }, "uses_default_working_hours": true } }] "pagingMetadata": { "count": 1, "cursors": {}, "hasNext": false } }
Did this help?

POST

Count Staff Members


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Counts staff members according to given criteria.

Use WQL filter to define the criteria.

For field support for filters, see Staff Members: Supported Filters

Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/count

Body Params
filterstruct

The filters for performing the count.

Response Object
countinteger

The number of staff members matching the given filter.

Count staff members, providing a filter to count specific staff members matching the filter.

Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/count' \ -H 'Authorization: <AUTH>' \ -d '{ "filter": { "name": { "$eq": "Name that does not exist" } } }'
Response
JSON
{ "count": 0 }
Did this help?

POST

Connect Staff Member To User


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Connects staff member to a Wix user.

By default the staff member's email is used to connect to the user. If the email is already associated with a Wix user with roles and permissions to access the site, the staff member is connected to that user. If the email is not associated with a Wix user, or the Wix user is not associated with the site, an invitation is sent to the email to join the site.

Connecting a staff member to a user gives access to the user to manage the staff's schedule via the Wix backoffice.

The status of a staff member's connection is stored in the associatedWixIdentity field, and can be fetched using the requested field ASSOCIATED_IDENTITY_STATUS.

The status of a connection can be one of the following:

  • CONNECTED - The staff member is connected to a Wix user.
  • PENDING - An invitation was sent to the user to connect to the staff member.
  • EXPIRED - The invitation to connect to the staff member has expired.
  • DISCONNECTED - The staff member is not connected to a user.
Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}/connect-staff-member-to-user

Path Params
staffMemberIdstringRequired

ID of the staff member. The staff member to connect to a user.

Body Params
emailstringmaxLength 320format EMAIL

Email of the user to send invitation to. The staff existing email would be used if not provided.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The updated staff member. After connecting to the user.

Connect a staff member to a user, providing a custom email address.

Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039/connect-staff-member-to-user' \ -H 'Authorization: <AUTH>' \ -d '{ "staffMemberId": "0954bbb2-88cd-445c-9827-44253eb8b039", "email": "some-other@email.com" }'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "email": "some@email.com", "name": "Some other name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Search Staff Members


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a list of staff members matching the provided search criteria.

Use WQL to define the search criteria.

The search endpoints allow to perform advance search including partial text search, exact match, and more. The endpoint also allows to aggregate staff members by their name, email, phone, description, or resource id.

Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/search

Body Params
searchSearchRequired

WQL expression.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMembersArray <StaffMember>

The retrieved staff members matching the search criteria.


pagingMetadataPagingMetadata

Paging metadata. Including paging, offset and cursor.


aggregationDataAggregationData

Aggregation data results, resulting from the aggregations stated in the request.

Search staff members.

Search staff members, matching staff members based on a search term to match the last name.

Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/query' \ -H 'Authorization: <AUTH>' \ -d '{ "search": { "search": { "fields": [ "name" ], "expression": "Lastname" }, "cursor_paging": { "limit": 100 } } }'
Response
JSON
{ "staff_members": [ { "id": "21954d5c-6345-4b62-8526-6a86b2a5a734", "name": "Some Lastname", "email": null, "phone": null, "description": null, "main_media": null, "resource_id": "e0936563-7fd8-4e08-9db0-a327b2cb653e", "resource": null, "associated_wix_identity": null, "associated_conferencing_providers": null, "default": false, "revision": "3", "created_date": "2024-08-28T14:45:02.858Z", "updated_date": "2024-08-28T14:51:06.975Z", "extended_fields": null, "associated_conferencing_accounts": null } ], "paging_metadata": { "count": 1, "cursors": { "next": null, "prev": null }, "has_next": false }, "aggregation_data": null }
Did this help?

POST

Disconnect Staff Member From User


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Disconnects a staff member from the Wix user.

If the staff member is connected to a user, this API disconnects the staff member from the user, removing the associatedWixIdentity field. The action removes the user's access to manage the staff member's schedule via the Wix backoffice.

After the staff member is disconnected from the user, the staff member can be connected to a different user.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}/disconnect-staff-member-from-user

Path Params
staffMemberIdstringRequired

ID of the StaffMember to disconnect.

Body Params
fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The updated staff member.

Disconnect a staff member from a user.
Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039/disconnect-staff-member-from-user' \ -H 'Authorization: <AUTH>' \ -d '{ "staffMemberId": "0954bbb2-88cd-445c-9827-44253eb8b039", }'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "email": "some@email.com", "name": "Some other name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Assign Working Hours Schedule


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Assigns a custom working hours schedule to the staff member

The working hours schedule is a schedule that defines the working hours of a staff member, and dictate when the staff member is available for bookings.

By default staff members use the shared business working hours schedule. By assigning a custom working hours schedule to a staff member, you can define specific working hours f or that staff member.

To create and manage schedules and working hours sessions, use Events API.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}/assign-working-hours-schedule

Path Params
staffMemberIdstringRequired

Id of the staff member to assign the schedule to.

Body Params
scheduleIdstringRequiredformat GUID

Id of a schedule to assign to the staff's working hours schedule.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The updated staff member. After assigning the custom schedule.

Event TriggersThis method triggers the following events:
Did this help?

POST

Assign Custom Schedule


Deprecated

This method has been replaced with Assign Working Hours Schedule, and will be removed on December 31, 2024.

Assigns a custom working hours schedule to the staff member

The working hours schedule is a schedule that defines the working hours of a staff member, and dictate when the staff member is available for bookings.

By default staff members use the shared business working hours schedule. By assigning a custom working hours schedule to a staff member, you can define specific working hours for that staff member.

To create and manage schedules and working hours sessions, use Events API.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/staff-members/{staffMemberId}/assign-custom-schedule

Path Params
staffMemberIdstringRequired

ID of the staff member to assign the schedule to.

Body Params
scheduleIdstringRequiredformat GUID

ID of a schedule to assign to the staff's working hours schedule.


fieldsArray <string>maxItems 3

Conditional fields to return.

Response Object
staffMemberStaffMember

The updated staff member.

Assign a custom working hours schedule to a staff member.

Using fields enables to return the resulting resource details, after it has been linked to the customs schedule.

Request
cURL
curl -X POST \ 'https://www.wixapis.com/bookings/v1/staff-members/0954bbb2-88cd-445c-9827-44253eb8b039/assign-custom-schedule' \ -H 'Authorization: <AUTH>' \ -d '{ "staffMemberId": "0954bbb2-88cd-445c-9827-44253eb8b039", "scheduleId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "fields": ["RESOURCE_DETAILS"] }'
Response
JSON
{ "staffMember": { "id": "0954bbb2-88cd-445c-9827-44253eb8b039", "email": "some@email.com", "name": "Some other name", "resourceId": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "default": false, "revision": "3", "createdDate": "2024-08-28T13:22:32.784Z", "updatedDate": "2024-08-28T14:16:11.948Z", "resource": { "id": "e0936563-7fd8-4e08-9db0-a327b2cb653e", "working_hours_schedules": [ { "id": "136d9d9a-97ab-49fa-a0cf-ec24f500bd98", "shared": false } ], "events_schedule": { "id": "7c147d9e-89a8-4e2e-a723-b095db0610c1" }, "uses_default_working_hours": false } } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Bulk Update Staff Member Tags


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Synchronously update tags on multiple staff members, by list of staff member ids A tag that appears both in the list of assign and unassign tags, will be assigned

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/bulk/staff-members/update-tags

Body Params
idsArray <string>RequiredminItems 1maxItems 100format GUID

IDs of staff members to update tags for.


assignTagsAssignTags

Tags to be added to staff members


unassignTagsUnassignTags

Tags to be removed from staff members

Response Object
resultsArray <BulkUpdateStaffMemberTagsResult>minItems 1maxItems 100

Results


bulkActionMetadataBulkActionMetadata

Bulk action metadata

Event TriggersThis method triggers the following events:
Did this help?

POST

Bulk Update Staff Member Tags By Filter


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Asynchronously update tags on multiple staff members, by provided filter An empty filter will update all staff members A tag that appears both in the list of assign and unassign tags, will be assigned

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Bookings - all permissions
Manage Bookings
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/bookings/v1/bulk/staff-members/update-tags-by-filter

Body Params
filterstructRequired

Filter


assignTagsAssignTags

Tags to be added to staff members


unassignTagsUnassignTags

Tags to be removed from staff members

Response Object
jobIdstringformat GUID

The job id for the bulk update operation

Event TriggersThis method triggers the following events:
Did this help?

Staff Member Connected To User


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected connected_to_user.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_connected_to_user", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

StaffMemberConnectedToUser
JSON
{ "id": "febe8724-c65a-4e5f-b2e9-f011709de54c", "entityFqdn": "wix.bookings.staff.v1.staff_member", "slug": "connected_to_user", "entityId": "91fa440c-8b6d-4511-96d7-a270809a0536", "actionEvent": { "body": { "staffMember": { "id": "91fa440c-8b6d-4511-96d7-a270809a0536", "name": "Some Name", "associatedWixIdentity": { "connectionStatus": "DISCONNECTED", "connection": { "status": "DISCONNECTED" } }, "default": false, "revision": "1", "createdDate": "2024-11-21T10:38:52.433Z", "updatedDate": "2024-11-21T10:38:52.433Z" } } }, "eventTime": "2024-10-14T09:28:48.693666801Z", "triggeredByAnonymizeRequest": false }
Did this help?

Staff Member Created


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


createdEventCreatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

StaffMemberCreated
JSON
{ "id": "006ea37d-11ed-4273-868a-923ecbdce7f9", "entityFqdn": "wix.bookings.staff.v1.staff_member", "slug": "created", "entityId": "91fa440c-8b6d-4511-96d7-a270809a0536", "createdEvent": { "entity": { "id": "91fa440c-8b6d-4511-96d7-a270809a0536", "name": "Some Name", "associatedWixIdentity": { "connectionStatus": "DISCONNECTED", "connection": { "status": "DISCONNECTED" } }, "default": false, "revision": "1", "createdDate": "2024-11-21T10:38:52.433Z", "updatedDate": "2024-11-21T10:38:52.433Z" } }, "eventTime": "2024-11-21T10:38:52.449208914Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "1" }
Did this help?

Staff Member Deleted


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected deleted.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


deletedEventstruct

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_deleted", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

StaffMemberDeleted
JSON
{ "id": "79fb0003-9f8e-4990-9dbb-284f4a6f72ed", "entityFqdn": "wix.bookings.staff.v1.staff_member", "slug": "deleted", "entityId": "91fa440c-8b6d-4511-96d7-a270809a0536", "deletedEvent": { "movedToTrash": true, "deletedEntity": { "id": "91fa440c-8b6d-4511-96d7-a270809a0536", "name": "Some Name", "resourceId": "17a91c2d-77f9-4571-a736-a442cb28d2e1", "resource": { "id": "17a91c2d-77f9-4571-a736-a442cb28d2e1", "workingHoursSchedules": [ { "id": "77ee564a-80d5-4ffc-85a3-284df66a0d12", "shared": true } ], "eventsSchedule": { "id": "729454c0-718e-42b1-8908-e689a310f3f2" }, "usesDefaultWorkingHours": true }, "associatedWixIdentity": { "connectionStatus": "DISCONNECTED", "connection": { "status": "DISCONNECTED" } }, "default": false, "revision": "2", "createdDate": "2024-11-21T10:38:52.433Z", "updatedDate": "2024-11-21T10:38:52.712Z" } }, "eventTime": "2024-11-21T10:38:52.754111734Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "3" }
Did this help?

Staff Member Disconnected From User


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected disconnected_from_user.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_disconnected_from_user", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

StaffMemberDisconnectedFromUser
JSON
{ "id": "febe8724-c65a-4e5f-b2e9-f011709de54c", "entityFqdn": "wix.bookings.staff.v1.staff_member", "slug": "disconnected_from_user", "entityId": "91fa440c-8b6d-4511-96d7-a270809a0536", "actionEvent": { "body": { "staffMember": { "id": "91fa440c-8b6d-4511-96d7-a270809a0536", "name": "Some Name", "associatedWixIdentity": { "connectionStatus": "DISCONNECTED", "connection": { "status": "DISCONNECTED" } }, "default": false, "revision": "1", "createdDate": "2024-11-21T10:38:52.433Z", "updatedDate": "2024-11-21T10:38:52.433Z" } } }, "eventTime": "2024-10-14T09:28:48.693666801Z", "triggeredByAnonymizeRequest": false }
Did this help?

Staff Member Fully Created


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected fully_created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


actionEventActionEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_fully_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }
Did this help?

Staff Member Updated


Permissions
Manage Bookings - all permissions
Read Bookings - all read permissions
Manage Bookings
Read Bookings - Public Data
Read Bookings - Including Participants
Learn more about app permissions.
Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.bookings.staff.v1.staff_member.


slugstring

Event name. Expected updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


updatedEventUpdatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.bookings.staff.v1.staff_member_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }

StaffMemberUpdated
JSON
{ "id": "da464e9c-47dc-40c2-8244-de247d65ac64", "entityFqdn": "wix.bookings.staff.v1.staff_member", "slug": "updated", "entityId": "91fa440c-8b6d-4511-96d7-a270809a0536", "updatedEvent": { "currentEntity": { "id": "91fa440c-8b6d-4511-96d7-a270809a0536", "name": "Some Name", "resourceId": "17a91c2d-77f9-4571-a736-a442cb28d2e1", "resource": { "id": "17a91c2d-77f9-4571-a736-a442cb28d2e1", "workingHoursSchedules": [ { "id": "77ee564a-80d5-4ffc-85a3-284df66a0d12", "shared": true } ], "eventsSchedule": { "id": "729454c0-718e-42b1-8908-e689a310f3f2" }, "usesDefaultWorkingHours": true }, "associatedWixIdentity": { "connectionStatus": "DISCONNECTED", "connection": { "status": "DISCONNECTED" } }, "default": false, "revision": "2", "createdDate": "2024-11-21T10:38:52.433Z", "updatedDate": "2024-11-21T10:38:52.712Z" } }, "eventTime": "2024-11-21T10:38:52.754111734Z", "triggeredByAnonymizeRequest": false, "entityEventSequence": "3" }
Did this help?