@wix/auto_sdk_crm_contacts-v-5 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/build/cjs/{contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.ts → contacts-v5-contact-contacts-v-5.universal-DQ0VgYqw.d.ts} +140 -162
  2. package/build/cjs/index.d.ts +147 -171
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/cjs/index.typings.d.ts +8 -19
  5. package/build/cjs/index.typings.js.map +1 -1
  6. package/build/cjs/meta.d.ts +6 -13
  7. package/build/cjs/meta.js.map +1 -1
  8. package/build/cjs/schemas.js +4 -4
  9. package/build/cjs/schemas.js.map +1 -1
  10. package/build/es/{contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.mts → contacts-v5-contact-contacts-v-5.universal-DQ0VgYqw.d.mts} +140 -162
  11. package/build/es/index.d.mts +147 -171
  12. package/build/es/index.mjs.map +1 -1
  13. package/build/es/index.typings.d.mts +8 -19
  14. package/build/es/index.typings.mjs.map +1 -1
  15. package/build/es/meta.d.mts +6 -13
  16. package/build/es/meta.mjs.map +1 -1
  17. package/build/es/schemas.mjs +4 -4
  18. package/build/es/schemas.mjs.map +1 -1
  19. package/build/internal/cjs/{contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.ts → contacts-v5-contact-contacts-v-5.universal-DQ0VgYqw.d.ts} +140 -162
  20. package/build/internal/cjs/index.d.ts +147 -171
  21. package/build/internal/cjs/index.js.map +1 -1
  22. package/build/internal/cjs/index.typings.d.ts +8 -19
  23. package/build/internal/cjs/index.typings.js.map +1 -1
  24. package/build/internal/cjs/meta.d.ts +6 -13
  25. package/build/internal/cjs/meta.js.map +1 -1
  26. package/build/internal/cjs/schemas.js +4 -4
  27. package/build/internal/cjs/schemas.js.map +1 -1
  28. package/build/internal/es/{contacts-v5-contact-contacts-v-5.universal-78Io5ULf.d.mts → contacts-v5-contact-contacts-v-5.universal-DQ0VgYqw.d.mts} +140 -162
  29. package/build/internal/es/index.d.mts +147 -171
  30. package/build/internal/es/index.mjs.map +1 -1
  31. package/build/internal/es/index.typings.d.mts +8 -19
  32. package/build/internal/es/index.typings.mjs.map +1 -1
  33. package/build/internal/es/meta.d.mts +6 -13
  34. package/build/internal/es/meta.mjs.map +1 -1
  35. package/build/internal/es/schemas.mjs +4 -4
  36. package/build/internal/es/schemas.mjs.map +1 -1
  37. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import * as _wix_sdk_types from '@wix/sdk-types';
2
2
  import { QuerySpec, SearchSpec, Query, Search, NonNullablePaths } from '@wix/sdk-types';
3
3
 
4
+ /** A contact represents a person in a site's contact list. It stores profile details such as name, email addresses, phone numbers, and addresses, and can optionally be linked to a site member. */
4
5
  interface Contact {
5
6
  /**
6
7
  * Contact ID.
@@ -977,9 +978,7 @@ declare enum V5SubscriptionStatus {
977
978
  type V5SubscriptionStatusWithLiterals = V5SubscriptionStatus | 'NOT_SET' | 'SUBSCRIBED' | 'UNSUBSCRIBED';
978
979
  interface BulkUpdateContactSubscriptionsResponse {
979
980
  /**
980
- * The ID of the bulk update contact subscription job.
981
- *
982
- * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.
981
+ * Job ID. Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job) to retrieve the status of the asynchronous operation.
983
982
  * @format GUID
984
983
  */
985
984
  jobId?: string;
@@ -2043,9 +2042,7 @@ interface BulkUpdateContactTagsByFilterRequest {
2043
2042
  }
2044
2043
  interface BulkUpdateContactTagsByFilterResponse {
2045
2044
  /**
2046
- * The ID of the update tags job.
2047
- *
2048
- * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.
2045
+ * Job ID. Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job) to retrieve the status of the asynchronous operation.
2049
2046
  * @format GUID
2050
2047
  */
2051
2048
  jobId?: string;
@@ -2139,9 +2136,7 @@ interface BulkDeleteContactsByFilterRequest {
2139
2136
  }
2140
2137
  interface BulkDeleteContactsByFilterResponse {
2141
2138
  /**
2142
- * The ID of the delete job.
2143
- *
2144
- * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.
2139
+ * Job ID. Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job) to retrieve the status of the asynchronous operation.
2145
2140
  * @format GUID
2146
2141
  */
2147
2142
  jobId?: string;
@@ -2436,9 +2431,7 @@ interface BulkUpdatePhoneCountryCodeByFilterRequest {
2436
2431
  }
2437
2432
  interface BulkUpdatePhoneCountryCodeByFilterResponse {
2438
2433
  /**
2439
- * The ID of the bulk update contact job.
2440
- *
2441
- * Pass this ID to Get Async Job, in the Async Jobs API, to retrieve job details and metadata.
2434
+ * Job ID. Pass this ID to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job) to retrieve the status of the asynchronous operation.
2442
2435
  * @format GUID
2443
2436
  */
2444
2437
  jobId?: string;
@@ -2809,8 +2802,11 @@ type GetContactImageUploadStatusApplicationErrors = {
2809
2802
  data?: Record<string, any>;
2810
2803
  };
2811
2804
  /**
2812
- * Creates an async job to bulk update email and phone subscription statuses for multiple contacts.
2813
- * If the new subscription status is equal to the current one, there will be no update.
2805
+ * Updates the email and SMS marketing subscription statuses of multiple contacts that match the provided filter. Works asynchronously.
2806
+ *
2807
+ * If a requested subscription status matches a contact's current status, that contact is left unchanged. Provide at least one of `emailSubscriptionStatus` or `phoneSubscriptionStatus`.
2808
+ *
2809
+ * To check the status of the bulk update, pass the returned `jobId` to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job).
2814
2810
  * @param filter - A filter for the contacts that the subscription statuses will be applied to.
2815
2811
  *
2816
2812
  * Example:
@@ -2834,22 +2830,15 @@ interface BulkUpdateContactSubscriptionsOptions {
2834
2830
  phoneSubscriptionStatus?: V5SubscriptionStatusWithLiterals;
2835
2831
  }
2836
2832
  /**
2837
- * Creates a contact in the site's contact list.
2833
+ * Creates a contact.
2838
2834
  *
2839
- * *Required Fields:** At least one of the following must be provided:
2840
- * - `name.first` or `name.last`
2841
- * - `email.email`
2842
- * - `phone.phone`
2835
+ * At least one of `name.first`, `name.last`, `email.email`, or `phone.phone` must be provided.
2843
2836
  *
2844
- * *Duplicate Handling:** By default, creation fails if a contact with the same identifiers
2845
- * (external_id, email, or phone) already exists. Set `allow_duplicates` to true to bypass this check.
2846
- * Learn more about [contact matching and duplicates](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).
2837
+ * *Duplicate handling:** By default, creation fails if a contact with the same identifiers (`externalId`, `email.email`, or `phone.phone`) already exists. Set `allowDuplicates` to `true` to bypass this check. Learn more about [contact matching and duplicates](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).
2847
2838
  *
2848
- * *Image Upload:** When providing an image URL, the image is uploaded asynchronously.
2849
- * An `image_upload_id` is returned for tracking upload progress.
2850
- * Use [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
2839
+ * *Image upload:** When you provide an image URL, the image is uploaded asynchronously and an `imageUploadId` is returned for tracking upload progress. Call [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
2851
2840
  *
2852
- * To create multiple contacts in a single request, call [Bulk Create Contacts](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/bulk-create-contacts).
2841
+ * To create multiple contacts in a single request, call [Bulk Create Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts/contact-v5/bulk-create-contacts).
2853
2842
  * @param contact - Contact to be created.
2854
2843
  * @public
2855
2844
  * @documentationMaturity preview
@@ -2882,22 +2871,18 @@ interface CreateContactOptions {
2882
2871
  */
2883
2872
  declare function getContact(contactId: string): Promise<NonNullablePaths<Contact, `email.email` | `email.subscriptionStatus.status` | `email.deliverabilityStatus` | `additionalEmails` | `additionalEmails.${number}.email` | `phone.tag` | `phone.phone` | `phone.deliverabilityStatus` | `additionalPhones` | `additionalPhones.${number}.tag` | `additionalPhones.${number}.phone` | `addresses` | `addresses.${number}.tag` | `addresses.${number}.address.streetAddress.number` | `addresses.${number}.address.streetAddress.name` | `addresses.${number}.address.streetAddress.apt` | `locationIds` | `segmentIds` | `memberInfo.status` | `memberInfo.profileInfo.privacyStatus` | `memberInfo.userInfo.userId` | `memberInfo.userInfo.role` | `memberInfo.sessionInfo.mobileAppNames` | `memberInfo.groupInfo.groupIds` | `tags.privateTags.tagIds`, 6>>;
2884
2873
  /**
2885
- * Updates an existing contact with new information.
2886
- *
2887
- * *Revision Control:** The current `revision` number must be provided to prevent
2888
- * conflicting updates. The revision increments with each update.
2874
+ * Updates a contact.
2889
2875
  *
2876
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed when updating the contact. This ensures you're working with the latest contact and prevents unintended overwrites.
2890
2877
  *
2891
2878
  * *Restrictions:**
2892
- * - `external_id` can only be set once and cannot be changed
2893
- * - Site member contacts main email cannot be changed
2894
- * - At least one of name, email, or phone must remain after update
2879
+ * - `externalId` can be set only once and can't be changed after creation.
2880
+ * - The main email of a contact that is a site member can't be changed. Update it through the [Members API](https://dev.wix.com/docs/api-reference/crm/members-contacts/members/member-management/members/introduction) instead.
2881
+ * - At least one of `name`, `email`, or `phone` must remain after the update.
2895
2882
  *
2896
- * *Image Upload:** When providing an image URL, the image is uploaded asynchronously.
2897
- * An `image_upload_id` is returned for tracking upload progress.
2898
- * Use [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
2883
+ * *Image upload:** When you provide an image URL, the image is uploaded asynchronously and an `imageUploadId` is returned for tracking upload progress. Call [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
2899
2884
  *
2900
- * To update multiple contacts in a single request, call [Bulk Update Contacts](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/bulk-update-contacts).
2885
+ * To update multiple contacts in a single request, call [Bulk Update Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-update-contacts).
2901
2886
  * @param _id - Contact ID.
2902
2887
  * @public
2903
2888
  * @documentationMaturity preview
@@ -3065,26 +3050,22 @@ interface UpdateContactOptions {
3065
3050
  allowDuplicates?: boolean;
3066
3051
  }
3067
3052
  /**
3068
- * Creates a contact or updates an existing one based on matching identifiers.
3053
+ * Creates a contact, or updates an existing one when a match is found based on the contact's identifiers.
3069
3054
  *
3070
- * *Matching Logic:** Uses external_id, email, and phone to find existing contacts.
3071
- * See [contact matching documentation](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts)
3072
- * for detailed matching rules.
3055
+ * Matching uses `externalId`, `email.email`, and `phone.phone` to find an existing contact. See [contact matching](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts) for the detailed matching rules.
3073
3056
  *
3074
- * *Upsert Modes:**
3075
- * - `OVERWRITE` (default): Replaces existing field values
3076
- * - `APPEND`: Sets fields only if they don't have existing values; appends to arrays
3077
- * - `OVERWRITE_APPEND_ARRAYS`: Overwrites non-array fields, appends to arrays
3057
+ * *Upsert modes:** Set `upsertMode` to control how an existing contact is updated:
3058
+ * - `OVERWRITE` (default): Replaces existing field values.
3059
+ * - `APPEND`: Sets a non-array field only if it doesn't already have a value, and appends to array fields.
3060
+ * - `OVERWRITE_APPEND_ARRAYS`: Overwrites non-array fields and appends to array fields.
3078
3061
  *
3079
- * *Member Contacts:** Set `update_member` to `true` when upserting site member contacts.
3062
+ * *Member contacts:** Set `updateMember` to `true` when upserting a contact that is a site member.
3080
3063
  *
3081
- * *Response:** The `action` field indicates whether the contact was `CREATED` or `UPDATED`.
3064
+ * The response's `action` field indicates whether the contact was `CREATED` or `UPDATED`.
3082
3065
  *
3083
- * *Image Upload:** When providing an image URL, the image is uploaded asynchronously.
3084
- * An `image_upload_id` is returned for tracking upload progress.
3085
- * Use [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
3066
+ * *Image upload:** When you provide an image URL, the image is uploaded asynchronously and an `imageUploadId` is returned for tracking upload progress. Call [Get Contact Image Upload Status](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/get-contact-image-upload-status) to monitor the upload.
3086
3067
  *
3087
- * To create or update multiple contacts in a single request, call [Bulk Upsert Contacts](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/bulk-upsert-contacts).
3068
+ * To create or update multiple contacts in a single request, call [Bulk Upsert Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-upsert-contacts).
3088
3069
  * @param contact - Contact to be upserted.
3089
3070
  * @public
3090
3071
  * @documentationMaturity preview
@@ -3104,10 +3085,11 @@ interface UpsertContactOptions {
3104
3085
  updateMember?: boolean | null;
3105
3086
  }
3106
3087
  /**
3107
- * Updates tags assigned to a specific contact.
3088
+ * Adds or removes tags on a contact.
3108
3089
  *
3109
- * *Assignment Logic:** If a tag appears in both assign and unassign lists, it will be assigned.
3110
- * At least one tag must be specified in either the assign or unassign list.
3090
+ * Specify which tags to assign and which to unassign. A tag that appears in both the list to assign and the list to unassign is assigned. At least one tag must be specified to assign or unassign.
3091
+ *
3092
+ * To update tags on multiple contacts, call [Bulk Update Contact Tags](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-update-contact-tags).
3111
3093
  * @param contactId - The contact from which to add or remove tags.
3112
3094
  * @public
3113
3095
  * @documentationMaturity preview
@@ -3126,22 +3108,23 @@ interface UpdateContactTagsOptions {
3126
3108
  unassignTags?: PrivateTags;
3127
3109
  }
3128
3110
  /**
3129
- * Merges multiple source contacts into a single target contact.
3111
+ * Merges up to 5 source contacts into a target contact.
3112
+ *
3113
+ * The current target contact revision must be passed as `targetContactRevision`. This ensures you're working with the latest contact and prevents unintended overwrites.
3130
3114
  *
3131
- * *Merge Process:**
3132
- * - Source contacts are permanently deleted after successful merge
3133
- * - Target contact is updated with merged information
3134
- * - Data from source contacts is combined based on merge priority
3115
+ * The merge behaves in one of two ways, depending on whether you provide `targetContact` in the request:
3135
3116
  *
3136
- * *Field Merging Rules:**
3137
- * - Non-empty fields from source contacts fill empty fields in target
3138
- * - Arrays (emails, phones, addresses) are combined and deduplicated
3139
- * - External ID can only be set once and cannot be changed if already set
3117
+ * - **Without `targetContact`:** The source contacts are merged into the existing target contact. Non-empty fields from the sources fill empty fields on the target, and array fields (emails, phones, and addresses) are combined and deduplicated. When you provide multiple sources, they're merged in order: the first source into the second, that result into the third, and so on, and finally into the target. Earlier sources take precedence over later ones.
3118
+ * - **With `targetContact`:** The provided `targetContact` overwrites the target according to `fieldMask`, and the source contacts are deleted without their data being merged in.
3119
+ *
3120
+ * In both cases, the source contacts are permanently deleted after a successful merge.
3121
+ *
3122
+ * Set `preview` to `true` to return the merged result without applying it, so you can review the outcome before committing.
3140
3123
  *
3141
3124
  * *Restrictions:**
3142
- * - Source contacts cannot be site members
3143
- * - Maximum 5 source contacts per merge operation
3144
- * - Target contact must remain valid after merge
3125
+ * - Source contacts can't be site members. The target contact can be a site member.
3126
+ * - `externalId` can be set only once and can't be changed if it already has a value.
3127
+ * - The target contact must remain valid after the merge, keeping at least one of `name`, `email`, or `phone`.
3145
3128
  * @param targetContactId - Target contact ID.
3146
3129
  * @param targetContactRevision - Target contact revision number, which increments by 1 each time the contact is updated to prevent conflicting changes.
3147
3130
  * @public
@@ -3177,18 +3160,17 @@ interface MergeContactsOptions {
3177
3160
  allowDuplicates?: boolean;
3178
3161
  }
3179
3162
  /**
3180
- * Deletes a contact from the contact list.
3163
+ * Deletes a contact.
3181
3164
  *
3182
- * *Soft Delete:** Contacts are moved to a trash bin and can be restored within 90 days
3183
- * using RestoreContactFromTrashBin or BulkRestoreContactsFromTrashBin.
3165
+ * Deleted contacts are moved to the trash bin and can be restored within 90 days by calling [Restore Contact From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/restore-contact-from-trash-bin) or [Bulk Restore Contacts From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-restore-contacts-from-trash-bin). After 90 days, they're permanently deleted.
3184
3166
  *
3185
- * *Member Contacts:** To delete a contact that is also a site member, set `delete_member` to `true` to delete both the contact and the member. Some member types, such as owners and contributors, can't be deleted.
3167
+ * *Member contacts:** To delete a contact that is also a site member, set `deleteMember` to `true`. This deletes both the contact and the member.
3186
3168
  *
3187
3169
  * *Restrictions:**
3188
- * - Contacts with active billing subscriptions can't be deleted.
3189
- * - Site owners and contributors can't be deleted.
3170
+ * - A contact with an active billing subscription can't be deleted.
3171
+ * - A site owner or contributor can't be deleted.
3190
3172
  *
3191
- * To delete multiple contacts in a single request, call [Bulk Delete Contacts](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/bulk-delete-contacts).
3173
+ * To delete multiple contacts in a single request, call [Bulk Delete Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-delete-contacts).
3192
3174
  * @param contactId - Id of the Contact to delete.
3193
3175
  * @public
3194
3176
  * @documentationMaturity preview
@@ -3209,23 +3191,13 @@ interface DeleteContactOptions {
3209
3191
  deleteMember?: boolean | null;
3210
3192
  }
3211
3193
  /**
3212
- * Finds contacts that match the provided identifiers using intelligent matching logic.
3194
+ * Retrieves a list of up to 100 contacts that match the provided identifiers.
3213
3195
  *
3214
- * *Matching Logic:** Uses external_id, email, and phone to identify potential duplicates.
3215
- * The system applies sophisticated matching rules to find contacts that likely represent
3216
- * the same person across different data sources.
3196
+ * Matching uses `externalId`, `email`, and `phone` to find contacts that likely represent the same person. Provide at least one identifier.
3217
3197
  *
3218
- * *Result Ordering:** Returns up to 100 contacts ordered by match strength:
3219
- * 1. Contacts matching multiple identifiers (highest priority)
3220
- * 2. Contacts matching single identifiers
3221
- * 3. Within each group, ordered by creation date (oldest first)
3198
+ * Results are ordered by match strength: contacts matching more or higher-priority identifiers appear first. Within each group, contacts are ordered by creation date, oldest first. Identifier priority is `externalId` (highest), then `email`, then `phone` (lowest).
3222
3199
  *
3223
- * *Identifier Priority:**
3224
- * 1. External ID (highest priority)
3225
- * 2. Email address
3226
- * 3. Phone number (lowest priority)
3227
- *
3228
- * Learn more: [Contact Matching Documentation](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts)
3200
+ * Learn more about [contact matching](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).
3229
3201
  * @public
3230
3202
  * @documentationMaturity preview
3231
3203
  * @permissionId CONTACTS.CONTACT_READ
@@ -3255,17 +3227,15 @@ interface FindMatchingContactsOptions {
3255
3227
  phone?: string | null;
3256
3228
  }
3257
3229
  /**
3258
- * Retrieves a list of contacts, given the provided paging, filtering, and sorting.
3259
- *
3230
+ * Retrieves a list of up to 100 contacts, given the provided filtering, sorting, and cursor paging.
3260
3231
  *
3261
- * To learn how to query Contacts, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language).
3262
3232
  *
3263
3233
  * Query Contacts runs with these defaults, which you can override:
3264
3234
  *
3265
3235
  * - `createdDate` is sorted in `DESC` order
3266
3236
  * - `paging.limit` is `50`
3267
3237
  *
3268
- * To learn about working with query endpoints, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).
3238
+ * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).
3269
3239
  * @public
3270
3240
  * @documentationMaturity preview
3271
3241
  * @permissionId CONTACTS.CONTACT_READ
@@ -3714,7 +3684,7 @@ type ContactSearch = {
3714
3684
  timeZone?: CommonSearchWithEntityContext['timeZone'] | null;
3715
3685
  };
3716
3686
  /**
3717
- * Returns the total number of contacts matching the specified criteria.
3687
+ * Retrieves the number of contacts that match the provided filter and search criteria.
3718
3688
  * @public
3719
3689
  * @documentationMaturity preview
3720
3690
  * @permissionId CONTACTS.CONTACT_READ
@@ -3774,9 +3744,11 @@ interface GenerateContactImageUploadUrlOptions {
3774
3744
  mimeType?: string | null;
3775
3745
  }
3776
3746
  /**
3777
- * Adds an email as an additional email.
3778
- * If the contact's email is not set, it cannot have an additional email and
3779
- * EMAIL_REQUIRED error will be returned.
3747
+ * Adds an additional email to a contact.
3748
+ *
3749
+ * The contact must have a main email (`email.email`) before an additional email can be added.
3750
+ *
3751
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed. This ensures you're working with the latest contact and prevents unintended overwrites.
3780
3752
  * @param contactId - ID of the Contact to add an email.
3781
3753
  * @param email - The email to add.
3782
3754
  * @public
@@ -3797,10 +3769,11 @@ interface AddContactAdditionalEmailOptions {
3797
3769
  revision: string | null;
3798
3770
  }
3799
3771
  /**
3800
- * Adds a phone as an additional phone.
3801
- * If the contact's phone is not set, it cannot have an additional phone and
3802
- * PHONE_REQUIRED error will be returned.
3803
- * Checking if the contact already has the given phone, is done by comparing the phone number and tag.
3772
+ * Adds an additional phone to a contact.
3773
+ *
3774
+ * The contact must have a main phone (`phone.phone`) before an additional phone can be added. If the contact already has the same phone number with the same tag, the request is ignored.
3775
+ *
3776
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed. This ensures you're working with the latest contact and prevents unintended overwrites.
3804
3777
  * @param contactId - ID of the Contact to add a phone.
3805
3778
  * @param phone - The phone to add.
3806
3779
  * @public
@@ -3821,10 +3794,11 @@ interface AddContactAdditionalPhoneOptions {
3821
3794
  revision: string | null;
3822
3795
  }
3823
3796
  /**
3824
- * Adds a contact's address.
3825
- * Checks that the address does not exist and appends to list of addresses.
3826
- * If the address exists, it is ignored.
3827
- * Checking if the contact already has the given address, is done by comparing the address and tag.
3797
+ * Adds an address to a contact.
3798
+ *
3799
+ * The address is appended to the contact's list of addresses. If the contact already has the same address with the same tag, the request is ignored.
3800
+ *
3801
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed. This ensures you're working with the latest contact and prevents unintended overwrites.
3828
3802
  * @param contactId - ID of the Contact to add an address.
3829
3803
  * @param address - The address to add.
3830
3804
  * @public
@@ -3845,7 +3819,9 @@ interface AddContactAddressOptions {
3845
3819
  revision: string | null;
3846
3820
  }
3847
3821
  /**
3848
- * Deletes a contact's address by address ID.
3822
+ * Deletes an address from a contact by address ID.
3823
+ *
3824
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed. This ensures you're working with the latest contact and prevents unintended overwrites.
3849
3825
  * @param revision - Contact revision number for optimistic concurrency control.
3850
3826
  * @public
3851
3827
  * @documentationMaturity preview
@@ -3873,7 +3849,9 @@ interface DeleteContactAddressIdentifiers {
3873
3849
  addressId: string;
3874
3850
  }
3875
3851
  /**
3876
- * Updates a contact's address.
3852
+ * Updates an address on a contact.
3853
+ *
3854
+ * Each time the contact is updated, `revision` increments by 1. The current `revision` must be passed. This ensures you're working with the latest contact and prevents unintended overwrites.
3877
3855
  * @param address - The updated address (must include address.id).
3878
3856
  * @public
3879
3857
  * @documentationMaturity preview
@@ -3901,13 +3879,11 @@ interface UpdateContactAddressOptions {
3901
3879
  revision: string | null;
3902
3880
  }
3903
3881
  /**
3904
- * Create multiple Contacts in a single request. Works synchronously.
3882
+ * Creates multiple contacts in a single request. Works synchronously.
3905
3883
  *
3906
- * When providing an image url for a contact, the images will be uploaded in the background,
3907
- * and each returned contact will temporarily have no image.
3908
- * Once the upload succeeds, the contacts image will be updated.
3884
+ * When you provide an image URL for a contact, the image is uploaded in the background and the returned contact temporarily has no image. Once the upload succeeds, the contact's image is updated.
3909
3885
  *
3910
- * To create a single contact, call [Create Contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/create-contact).
3886
+ * To create a single contact, call [Create Contact](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/create-contact).
3911
3887
  * @param contacts - List of Contacts to be created
3912
3888
  * @public
3913
3889
  * @documentationMaturity preview
@@ -3924,15 +3900,13 @@ interface BulkCreateContactsOptions {
3924
3900
  allowDuplicates?: boolean;
3925
3901
  }
3926
3902
  /**
3927
- * Update multiple Contacts in a single request. Works synchronously.
3903
+ * Updates multiple contacts in a single request. Works synchronously.
3928
3904
  *
3929
- * When providing an image url for a contact, the images will be uploaded in the background,
3930
- * and each returned contact will temporarily have the previous image.
3931
- * Once the upload succeeds, the contacts image will be updated.
3905
+ * When you provide an image URL for a contact, the image is uploaded in the background and the returned contact temporarily keeps its previous image. Once the upload succeeds, the contact's image is updated.
3932
3906
  *
3933
- * The `external_id` of a contact can be set only once and if it is already set it cannot be updated.
3907
+ * `externalId` can be set only once. If it already has a value, it can't be updated.
3934
3908
  *
3935
- * To update a single contact, call [Update Contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/update-contact).
3909
+ * To update a single contact, call [Update Contact](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/update-contact).
3936
3910
  * @param contacts - List of Contacts to be updated.
3937
3911
  * @public
3938
3912
  * @documentationMaturity preview
@@ -3951,9 +3925,11 @@ interface BulkUpdateContactsOptions {
3951
3925
  allowDuplicates?: boolean;
3952
3926
  }
3953
3927
  /**
3954
- * Synchronously update tags on multiple contacts, by list of contact ids
3955
- * A tag that appears both in the list of assign and unassign tags, will be assigned.
3956
- * There must be at least one tag to assign or unassign in the request.
3928
+ * Adds or removes tags on multiple contacts, specified by contact ID. Works synchronously.
3929
+ *
3930
+ * Specify which tags to assign and which to unassign. A tag that appears in both the list to assign and the list to unassign is assigned. At least one tag must be specified to assign or unassign.
3931
+ *
3932
+ * To update tags for a single contact, call [Update Contact Tags](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/update-contact-tags).
3957
3933
  * @param contactIds - The contacts from which to add or remove tags.
3958
3934
  * @public
3959
3935
  * @documentationMaturity preview
@@ -3974,10 +3950,13 @@ interface BulkUpdateContactTagsOptions {
3974
3950
  unassignTags?: PrivateTags;
3975
3951
  }
3976
3952
  /**
3977
- * Asynchronously update tags on multiple contacts, by provided filter
3978
- * An empty filter will update all contacts
3979
- * A tag that appears both in the list of assign and unassign tags, will be assigned.
3980
- * There must be at least one tag to assign or unassign in the request.
3953
+ * Adds or removes tags on multiple contacts that match the provided filter. Works asynchronously. An empty filter matches all contacts.
3954
+ *
3955
+ * Specify which tags to assign and which to unassign. A tag that appears in both the list to assign and the list to unassign is assigned. At least one tag must be specified to assign or unassign.
3956
+ *
3957
+ * To check the status of the bulk update, pass the returned `jobId` to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job).
3958
+ *
3959
+ * To update tags for a single contact, call [Update Contact Tags](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/update-contact-tags).
3981
3960
  * @param filter - A filter object. See documentation [here](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language#filters)
3982
3961
  * @public
3983
3962
  * @documentationMaturity preview
@@ -4000,23 +3979,18 @@ interface BulkUpdateContactTagsByFilterOptions {
4000
3979
  /**
4001
3980
  * Creates or updates multiple contacts in a single request. Works synchronously.
4002
3981
  *
4003
- * Tries finding a contact by the [matching logic](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts).
4004
- * If the contact is found, by the contact identifiers, the contact is updated. Otherwise created.
4005
- *
4006
- * If the contact is being updated, the upsert can run in three modes:
4007
- * `OVERWRITE` (default): Fields will be overwritten.
3982
+ * Each contact is matched against existing contacts using the [contact matching](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/matching-contacts) logic. If a match is found, the contact is updated. Otherwise, a new contact is created.
4008
3983
  *
4009
- * `APPEND`: Fields will be appended. Non-array fields will be set only if it does not have an existing value.
3984
+ * When a contact is updated, `upsertMode` controls how:
3985
+ * - `OVERWRITE` (default): Replaces existing field values.
3986
+ * - `APPEND`: Sets a non-array field only if it doesn't already have a value, and appends to array fields.
3987
+ * - `OVERWRITE_APPEND_ARRAYS`: Overwrites non-array fields and appends to array fields.
4010
3988
  *
4011
- * `OVERWRITE_APPEND_ARRAYS`: Array fields, will be appended. Non-array fields will be overwritten.
3989
+ * In `APPEND` or `OVERWRITE_APPEND_ARRAYS` mode, the default address flag is ignored unless the contact has no existing addresses.
4012
3990
  *
4013
- * When updating in `APPEND` or `OVERWRITE_APPEND_ARRAYS` mode and the request contains addresses,
4014
- * the default address flag will will be ignored unless there are no existing addresses on the contact.
3991
+ * When you provide an image URL and the upsert mode allows the image to be updated, the image is uploaded in the background. The returned contact temporarily has no image if it was created, or its previous image if it was updated. Once the upload succeeds, the contact's image is updated.
4015
3992
  *
4016
- * When providing an image url for a contact, given that the upsert mode allow the image to be updated,
4017
- * the images will be uploaded in the background, and each returned contact will temporarily
4018
- * have no image if the contact was created or the previous image if the contact was updated.
4019
- * Once the upload succeeds, the contact image will be updated.
3993
+ * To create or update a single contact, call [Upsert Contact](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/upsert-contact).
4020
3994
  * @param contacts - List of Contacts to be updated.
4021
3995
  * @public
4022
3996
  * @documentationMaturity preview
@@ -4036,12 +4010,11 @@ interface BulkUpsertContactsOptions {
4036
4010
  updateMember?: boolean | null;
4037
4011
  }
4038
4012
  /**
4039
- * Delete multiple Contacts in a single request. Works synchronously.
4013
+ * Deletes multiple contacts in a single request. Works synchronously.
4040
4014
  *
4041
- * When deleting contacts, the contact can be restored up to 90 days using the
4042
- * RestoreContactFromTrashBin or BulkRestoreContactsFromTrashBin.
4015
+ * Deleted contacts are moved to the trash bin and can be restored within 90 days by calling [Restore Contact From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/restore-contact-from-trash-bin) or [Bulk Restore Contacts From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-restore-contacts-from-trash-bin).
4043
4016
  *
4044
- * To delete a single contact, call [Delete Contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v5/delete-contact).
4017
+ * To delete a single contact, call [Delete Contact](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/delete-contact).
4045
4018
  * @param contactIds - Contact ids to be deleted
4046
4019
  * @public
4047
4020
  * @documentationMaturity preview
@@ -4062,22 +4035,20 @@ interface BulkDeleteContactsOptions {
4062
4035
  deleteMembers?: boolean | null;
4063
4036
  }
4064
4037
  /**
4065
- * Deletes multiple contacts.
4038
+ * Deletes multiple contacts that match the provided filter. Works asynchronously.
4066
4039
  *
4067
- * All contacts that meet the specified `filter` and `search` criteria are deleted.
4068
- * The request should contain a `filter` value or a `search` value, or both.
4069
- * To perform a dry run, use the intended filter options with
4070
- * [Search Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/search-contacts).
4040
+ * All contacts that meet the specified `filter` and `search` criteria are deleted. The request must contain a `filter` value, a `search` value, or both. To preview which contacts match before deleting, call [Search Contacts](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/search-contacts) with the same criteria.
4071
4041
  *
4072
- * The following errors can happen while processing the bulk and they will appear in the bulk job:
4073
- * - `CANNOT_DELETE_SITE_MEMBERS` - Contact is a site member and cannot be deleted. Site member must be deleted first.
4074
- * - `CANNOT_DELETE_CONTACT_WITH_BILLING_SUBSCRIPTION` - Contact has an active billing subscription and cannot be deleted.
4075
- * - `CANNOT_DELETE_WIX_USERS_MEMBER` - Site member cannot be deleted because it is the owner or a contributor.
4076
- * - `FAILED_DELETE_CONTACT_AFTER_MEMBER_DELETION` - Site member was deleted, but contact was not.
4077
- * - 'FAILED_DELETE_CONTACT' - Contact could not be deleted.
4042
+ * To check the status of the bulk deletion, pass the returned `jobId` to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job).
4078
4043
  *
4079
- * When deleting contacts, the contact can be restored up to 90 days using the
4080
- * RestoreContactFromTrashBin or BulkRestoreContactsFromTrashBin.
4044
+ * Deleted contacts are moved to the trash bin and can be restored within 90 days by calling [Restore Contact From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/restore-contact-from-trash-bin) or [Bulk Restore Contacts From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-restore-contacts-from-trash-bin).
4045
+ *
4046
+ * Individual contacts can fail during processing. These failures appear in the job's results with one of the following error codes:
4047
+ * - `CANNOT_DELETE_SITE_MEMBERS`: Contact is a site member and can't be deleted. The site member must be deleted first.
4048
+ * - `CANNOT_DELETE_CONTACT_WITH_BILLING_SUBSCRIPTION`: Contact has an active billing subscription and can't be deleted.
4049
+ * - `CANNOT_DELETE_WIX_USERS_MEMBER`: Site member can't be deleted because it's the owner or a contributor.
4050
+ * - `FAILED_DELETE_CONTACT_AFTER_MEMBER_DELETION`: Site member was deleted, but the contact was not.
4051
+ * - `FAILED_DELETE_CONTACT`: Contact couldn't be deleted.
4081
4052
  * @param filter - Filter object.
4082
4053
  *
4083
4054
  * Example:
@@ -4103,8 +4074,9 @@ interface BulkDeleteContactsByFilterOptions {
4103
4074
  deleteMembers?: boolean | null;
4104
4075
  }
4105
4076
  /**
4106
- * Remove a contact from the trash-bin.
4107
- * The contact will not be able to be restored anymore.
4077
+ * Permanently deletes a contact from the trash bin.
4078
+ *
4079
+ * After removal, the contact can no longer be restored.
4108
4080
  * @param contactId - Id of the Contact to remove from trashbin.
4109
4081
  * @public
4110
4082
  * @documentationMaturity preview
@@ -4115,7 +4087,9 @@ interface BulkDeleteContactsByFilterOptions {
4115
4087
  */
4116
4088
  declare function removeContactFromTrashBin(contactId: string): Promise<void>;
4117
4089
  /**
4118
- * Restore a contact from the trash-bin.
4090
+ * Restores a soft-deleted contact from the trash bin.
4091
+ *
4092
+ * To restore multiple contacts in a single request, call [Bulk Restore Contacts From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/bulk-restore-contacts-from-trash-bin).
4119
4093
  * @param contactId - Id of the Contact to restore from trashbin.
4120
4094
  * @public
4121
4095
  * @documentationMaturity preview
@@ -4126,7 +4100,9 @@ declare function removeContactFromTrashBin(contactId: string): Promise<void>;
4126
4100
  */
4127
4101
  declare function restoreContactFromTrashBin(contactId: string): Promise<NonNullablePaths<RestoreContactFromTrashBinResponse, `contact.email.email` | `contact.email.subscriptionStatus.status` | `contact.email.deliverabilityStatus` | `contact.additionalEmails` | `contact.additionalEmails.${number}.email` | `contact.phone.tag` | `contact.phone.phone` | `contact.phone.deliverabilityStatus` | `contact.additionalPhones` | `contact.additionalPhones.${number}.tag` | `contact.additionalPhones.${number}.phone` | `contact.addresses` | `contact.addresses.${number}.tag` | `contact.addresses.${number}.address.streetAddress.number` | `contact.addresses.${number}.address.streetAddress.name` | `contact.addresses.${number}.address.streetAddress.apt` | `contact.locationIds` | `contact.segmentIds` | `contact.memberInfo.status` | `contact.memberInfo.profileInfo.privacyStatus` | `contact.memberInfo.userInfo.userId` | `contact.memberInfo.userInfo.role` | `contact.memberInfo.sessionInfo.mobileAppNames` | `contact.memberInfo.groupInfo.groupIds` | `contact.tags.privateTags.tagIds`, 7>>;
4128
4102
  /**
4129
- * Restore contacts from the trash-bin
4103
+ * Restores multiple soft-deleted contacts from the trash bin.
4104
+ *
4105
+ * To restore a single contact, call [Restore Contact From Trash Bin](https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/contacts-v5/restore-contact-from-trash-bin).
4130
4106
  * @public
4131
4107
  * @documentationMaturity preview
4132
4108
  * @permissionId CONTACTS.CONTACT_RESTORE_FROM_TRASHBIN
@@ -4146,7 +4122,7 @@ interface BulkRestoreContactsFromTrashBinOptions {
4146
4122
  returnEntity?: boolean;
4147
4123
  }
4148
4124
  /**
4149
- * Retrieves a deleted contact from the trash bin by ID.
4125
+ * Retrieves a soft-deleted contact from the trash bin by ID.
4150
4126
  * @param contactId - Id of the Contact to retrieve from trashbin.
4151
4127
  * @public
4152
4128
  * @documentationMaturity preview
@@ -4157,7 +4133,7 @@ interface BulkRestoreContactsFromTrashBinOptions {
4157
4133
  */
4158
4134
  declare function getDeletedContact(contactId: string): Promise<NonNullablePaths<GetDeletedContactResponse, `contact.email.email` | `contact.email.subscriptionStatus.status` | `contact.email.deliverabilityStatus` | `contact.additionalEmails` | `contact.additionalEmails.${number}.email` | `contact.phone.tag` | `contact.phone.phone` | `contact.phone.deliverabilityStatus` | `contact.additionalPhones` | `contact.additionalPhones.${number}.tag` | `contact.additionalPhones.${number}.phone` | `contact.addresses` | `contact.addresses.${number}.tag` | `contact.addresses.${number}.address.streetAddress.number` | `contact.addresses.${number}.address.streetAddress.name` | `contact.addresses.${number}.address.streetAddress.apt` | `contact.locationIds` | `contact.segmentIds` | `contact.memberInfo.status` | `contact.memberInfo.profileInfo.privacyStatus` | `contact.memberInfo.userInfo.userId` | `contact.memberInfo.userInfo.role` | `contact.memberInfo.sessionInfo.mobileAppNames` | `contact.memberInfo.groupInfo.groupIds` | `contact.tags.privateTags.tagIds`, 7>>;
4159
4135
  /**
4160
- * List deleted contacts by the provided identifiers.
4136
+ * Retrieves a list of soft-deleted contacts from the trash bin, filtered by the provided identifiers and deletion date range.
4161
4137
  * @public
4162
4138
  * @documentationMaturity preview
4163
4139
  * @permissionId CONTACTS.CONTACT_READ_FROM_TRASHBIN
@@ -4224,9 +4200,11 @@ interface GetContactImageUploadStatusIdentifiers {
4224
4200
  imageUploadId: string;
4225
4201
  }
4226
4202
  /**
4227
- * Adds the requested country code to contact's main phones.
4228
- * The main phone of a contact will be changed if the resulting number with the added country code,
4229
- * is a valid phone number. Otherwise, the contact is not changed.
4203
+ * Adds a country code to the main phone of multiple contacts that match the provided filter. Works asynchronously.
4204
+ *
4205
+ * A contact's main phone is changed only if adding the country code produces a valid phone number. Otherwise, the contact is left unchanged.
4206
+ *
4207
+ * To check the status of the bulk update, pass the returned `jobId` to [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job).
4230
4208
  * @public
4231
4209
  * @documentationMaturity preview
4232
4210
  * @requiredField options.countryCode