Skip to main content

Class: CustomersService

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:123

Extends​

  • BaseService

Constructors​

Constructor​

new CustomersService(client): CustomersService

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:131

Parameters​

client​

TanqoryClient

Returns​

CustomersService

Overrides​

BaseService.constructor

Properties​

client​

protected client: TanqoryClient

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/base.ts:10

Inherited from​

BaseService.client

Methods​

addAddress()​

addAddress(...args): Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:271

Parameters​

args​

...[string, object, string]

Returns​

Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>


addCustomerAddress()​

addCustomerAddress(storeId, customerId, data): Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:673

Parameters​

storeId​

string

customerId​

string

data​
address1​

string

address2?​

string

city​

string

company?​

string

country​

string

firstName​

string

isDefault?​

boolean

lastName​

string

phone?​

string

postalCode​

string

province​

string

Returns​

Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>

Deprecated​

Use addAddress() instead

See​

addAddress


addCustomerNote()​

addCustomerNote(storeId, customerId, data): Promise<{ author?: string; createdAt: Date; id: string; note: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:685

Parameters​

storeId​

string

customerId​

string

data​
note​

string

Returns​

Promise<{ author?: string; createdAt: Date; id: string; note: string; }>

Deprecated​

Use addNote() instead

See​

addNote


addCustomersToSegment()​

addCustomersToSegment(...args): Promise<{ addedCount?: number; newCustomerCount: number; removedCount?: number; segmentId: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:393

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ addedCount?: number; newCustomerCount: number; removedCount?: number; segmentId: string; success: boolean; }>


addNote()​

addNote(...args): Promise<{ author?: string; createdAt: Date; id: string; note: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:215

Parameters​

args​

...[string, object, string]

Returns​

Promise<{ author?: string; createdAt: Date; id: string; note: string; }>


addTimelineComment()​

addTimelineComment(...args): Promise<{ attachments?: object[]; author?: string; authorId?: string; authorName?: string; createdAt?: Date; description?: string; editedAt?: Date; id: string; isComment?: boolean; isEdited?: boolean; isSystem?: boolean; mentions?: object[]; metadata?: Record<string, unknown>; relatedId?: string; relatedType?: string; storeId?: string; timestamp: Date; title: string; type: "NOTE_ADDED" | "COMMENT" | "GIFT_CARD_ISSUED" | "ORDER_CANCELLED" | "ORDER_EDITED" | "REFUND_ISSUED" | "PASSWORD_CHANGED" | "EMAIL_SENT" | "ORDER_PLACED" | "ORDER_FULFILLED" | "RETURN_REQUESTED" | "RETURN_COMPLETED" | "EXCHANGE_CREATED" | "SMS_SENT" | "NOTE_CHANGED" | "NOTE_REMOVED" | "TAG_ADDED" | "TAG_REMOVED" | "ACCOUNT_CREATED" | "ACCOUNT_ACTIVATED" | "ACCOUNT_DISABLED" | "PASSWORD_RESET_REQUESTED" | "CUSTOMER_MERGED" | "STATUS_CHANGED" | "ADDRESS_ADDED" | "ADDRESS_UPDATED" | "ADDRESS_DELETED" | "MARKETING_SUBSCRIBED" | "MARKETING_UNSUBSCRIBED" | "GIFT_CARD_REDEEMED" | "STORE_CREDIT_ADDED" | "STORE_CREDIT_USED" | "TAX_EXEMPTION_CHANGED"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:233

Parameters​

args​

...[string, object, string]

Returns​

Promise<{ attachments?: object[]; author?: string; authorId?: string; authorName?: string; createdAt?: Date; description?: string; editedAt?: Date; id: string; isComment?: boolean; isEdited?: boolean; isSystem?: boolean; mentions?: object[]; metadata?: Record<string, unknown>; relatedId?: string; relatedType?: string; storeId?: string; timestamp: Date; title: string; type: "NOTE_ADDED" | "COMMENT" | "GIFT_CARD_ISSUED" | "ORDER_CANCELLED" | "ORDER_EDITED" | "REFUND_ISSUED" | "PASSWORD_CHANGED" | "EMAIL_SENT" | "ORDER_PLACED" | "ORDER_FULFILLED" | "RETURN_REQUESTED" | "RETURN_COMPLETED" | "EXCHANGE_CREATED" | "SMS_SENT" | "NOTE_CHANGED" | "NOTE_REMOVED" | "TAG_ADDED" | "TAG_REMOVED" | "ACCOUNT_CREATED" | "ACCOUNT_ACTIVATED" | "ACCOUNT_DISABLED" | "PASSWORD_RESET_REQUESTED" | "CUSTOMER_MERGED" | "STATUS_CHANGED" | "ADDRESS_ADDED" | "ADDRESS_UPDATED" | "ADDRESS_DELETED" | "MARKETING_SUBSCRIBED" | "MARKETING_UNSUBSCRIBED" | "GIFT_CARD_REDEEMED" | "STORE_CREDIT_ADDED" | "STORE_CREDIT_USED" | "TAX_EXEMPTION_CHANGED"; }>


adjustStoreCredit()​

adjustStoreCredit(...args): Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:597

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>


applyStoreCredit()​

applyStoreCredit(...args): Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:591

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>


archiveSegment()​

archiveSegment(...args): Promise<{ segmentId: string; status: "active" | "paused" | "archived" | "calculating"; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:411

Parameters​

args​

...[string, string]

Returns​

Promise<{ segmentId: string; status: "active" | "paused" | "archived" | "calculating"; success: boolean; }>


buildQuery()​

protected buildQuery(options?): Record<string, any>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/base.ts:26

Build query parameters

Parameters​

options?​

ListOptions

Returns​

Record<string, any>

Inherited from​

BaseService.buildQuery


bulkAddTags()​

bulkAddTags(...args): Promise<{ success: boolean; updatedCount: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:191

Parameters​

args​

...[string, string[], string[]]

Returns​

Promise<{ success: boolean; updatedCount: number; }>


bulkAddTagToSegment()​

bulkAddTagToSegment(...args): Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:435

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>


bulkApplyDiscountToSegment()​

bulkApplyDiscountToSegment(...args): Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:447

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>


bulkDelete()​

bulkDelete(...args): Promise<{ deletedCount: number; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:185

Parameters​

args​

...[string, string[]]

Returns​

Promise<{ deletedCount: number; success: boolean; }>


bulkEdit()​

bulkEdit(...args): Promise<{ errors?: object[]; failed: number; success: boolean; updated: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:203

Parameters​

args​

...[string, object[]]

Returns​

Promise<{ errors?: object[]; failed: number; success: boolean; updated: number; }>


bulkEmailSegment()​

bulkEmailSegment(...args): Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:423

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>


bulkRemoveTagFromSegment()​

bulkRemoveTagFromSegment(...args): Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:441

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>


bulkRemoveTags()​

bulkRemoveTags(...args): Promise<{ success: boolean; updatedCount: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:197

Parameters​

args​

...[string, string[], string[]]

Returns​

Promise<{ success: boolean; updatedCount: number; }>


bulkSmsSegment()​

bulkSmsSegment(...args): Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:429

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ affectedCount: number; jobId?: string; message: string; success: boolean; }>


create()​

create(...args): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:155

Parameters​

args​

...[object, string]

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>


createComputedTrait()​

createComputedTrait(...args): Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:485

Parameters​

args​

...[string, object]

Returns​

Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>


createCustomer()​

createCustomer(storeId, data): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:645

Parameters​

storeId​

string

data​
currency?​

string

defaultAddress?​

{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }

defaultAddress.address1​

string

defaultAddress.address2?​

string

defaultAddress.city​

string

defaultAddress.company?​

string

defaultAddress.country​

string

defaultAddress.firstName​

string

defaultAddress.isDefault​

boolean

defaultAddress.lastName​

string

defaultAddress.phone?​

string

defaultAddress.postalCode​

string

defaultAddress.province​

string

email​

string

emailMarketingConsent?​

"SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"

firstName​

string

language?​

string

lastName​

string

market?​

string

metafields?​

object[]

note?​

string

phone?​

string

smsMarketingConsent?​

"SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"

tags?​

string[]

taxExempt?​

"PENDING" | "NONE" | "EXEMPT"

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Deprecated​

Use create() instead

See​

create


createSegment()​

createSegment(...args): Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:315

Parameters​

args​

...[string, object]

Returns​

Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>


delete()​

delete(...args): Promise<{ deleted: true; id: string; object: "customer"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:167

Parameters​

args​

...[string, string]

Returns​

Promise<{ deleted: true; id: string; object: "customer"; }>


deleteAddress()​

deleteAddress(...args): Promise<{ deleted: true; id: string; object: "customer_address"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:289

Parameters​

args​

...[string, string, string]

Returns​

Promise<{ deleted: true; id: string; object: "customer_address"; }>


deleteComputedTrait()​

deleteComputedTrait(...args): Promise<{ deleted: true; id: string; object: "computed_trait"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:497

Parameters​

args​

...[string, string]

Returns​

Promise<{ deleted: true; id: string; object: "computed_trait"; }>


deleteCustomer()​

deleteCustomer(storeId, customerId): Promise<{ deleted: true; id: string; object: "customer"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:665

Parameters​

storeId​

string

customerId​

string

Returns​

Promise<{ deleted: true; id: string; object: "customer"; }>

Deprecated​

Use delete() instead

See​

delete


deleteEvent()​

deleteEvent(...args): Promise<DeletedResponse>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:541

Parameters​

args​

...[string, string]

Returns​

Promise<DeletedResponse>


deleteSegment()​

deleteSegment(...args): Promise<{ deleted: true; id: string; object: "customer_segment"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:327

Parameters​

args​

...[string, string]

Returns​

Promise<{ deleted: true; id: string; object: "customer_segment"; }>


deleteTimelineComment()​

deleteTimelineComment(...args): Promise<{ deleted: true; id: string; object: "customer_timeline_comment"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:245

Parameters​

args​

...[string, string, string]

Returns​

Promise<{ deleted: true; id: string; object: "customer_timeline_comment"; }>


duplicateSegment()​

duplicateSegment(...args): Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:357

Parameters​

args​

...[string, string, string]

Returns​

Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>


editTimelineComment()​

editTimelineComment(...args): Promise<{ attachments?: object[]; author?: string; authorId?: string; authorName?: string; createdAt?: Date; description?: string; editedAt?: Date; id: string; isComment?: boolean; isEdited?: boolean; isSystem?: boolean; mentions?: object[]; metadata?: Record<string, unknown>; relatedId?: string; relatedType?: string; storeId?: string; timestamp: Date; title: string; type: "NOTE_ADDED" | "COMMENT" | "GIFT_CARD_ISSUED" | "ORDER_CANCELLED" | "ORDER_EDITED" | "REFUND_ISSUED" | "PASSWORD_CHANGED" | "EMAIL_SENT" | "ORDER_PLACED" | "ORDER_FULFILLED" | "RETURN_REQUESTED" | "RETURN_COMPLETED" | "EXCHANGE_CREATED" | "SMS_SENT" | "NOTE_CHANGED" | "NOTE_REMOVED" | "TAG_ADDED" | "TAG_REMOVED" | "ACCOUNT_CREATED" | "ACCOUNT_ACTIVATED" | "ACCOUNT_DISABLED" | "PASSWORD_RESET_REQUESTED" | "CUSTOMER_MERGED" | "STATUS_CHANGED" | "ADDRESS_ADDED" | "ADDRESS_UPDATED" | "ADDRESS_DELETED" | "MARKETING_SUBSCRIBED" | "MARKETING_UNSUBSCRIBED" | "GIFT_CARD_REDEEMED" | "STORE_CREDIT_ADDED" | "STORE_CREDIT_USED" | "TAX_EXEMPTION_CHANGED"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:239

Parameters​

args​

...[string, string, object, string]

Returns​

Promise<{ attachments?: object[]; author?: string; authorId?: string; authorName?: string; createdAt?: Date; description?: string; editedAt?: Date; id: string; isComment?: boolean; isEdited?: boolean; isSystem?: boolean; mentions?: object[]; metadata?: Record<string, unknown>; relatedId?: string; relatedType?: string; storeId?: string; timestamp: Date; title: string; type: "NOTE_ADDED" | "COMMENT" | "GIFT_CARD_ISSUED" | "ORDER_CANCELLED" | "ORDER_EDITED" | "REFUND_ISSUED" | "PASSWORD_CHANGED" | "EMAIL_SENT" | "ORDER_PLACED" | "ORDER_FULFILLED" | "RETURN_REQUESTED" | "RETURN_COMPLETED" | "EXCHANGE_CREATED" | "SMS_SENT" | "NOTE_CHANGED" | "NOTE_REMOVED" | "TAG_ADDED" | "TAG_REMOVED" | "ACCOUNT_CREATED" | "ACCOUNT_ACTIVATED" | "ACCOUNT_DISABLED" | "PASSWORD_RESET_REQUESTED" | "CUSTOMER_MERGED" | "STATUS_CHANGED" | "ADDRESS_ADDED" | "ADDRESS_UPDATED" | "ADDRESS_DELETED" | "MARKETING_SUBSCRIBED" | "MARKETING_UNSUBSCRIBED" | "GIFT_CARD_REDEEMED" | "STORE_CREDIT_ADDED" | "STORE_CREDIT_USED" | "TAX_EXEMPTION_CHANGED"; }>


evaluateSegment()​

evaluateSegment(...args): Promise<{ count: number; customers?: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:345

Parameters​

args​

...[string, object]

Returns​

Promise<{ count: number; customers?: object[]; }>


exportSegment()​

exportSegment(...args): Promise<{ downloadUrl: string; expiresAt: Date; fileName: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:363

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ downloadUrl: string; expiresAt: Date; fileName: string; }>


generateIdempotencyKey()​

protected generateIdempotencyKey(prefix): string

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/base.ts:19

Generate idempotency key

Parameters​

prefix​

string

Returns​

string

Inherited from​

BaseService.generateIdempotencyKey


generateSegmentWithAI()​

generateSegmentWithAI(...args): Promise<{ confidence: number; description: string; explanation: string; filterGroups?: FilterGroup; filters: object[]; query: string; suggestedName: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:459

Parameters​

args​

...[string, object]

Returns​

Promise<{ confidence: number; description: string; explanation: string; filterGroups?: FilterGroup; filters: object[]; query: string; suggestedName: string; }>


getAddresses()​

getAddresses(...args): Promise<{ addresses: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:277

Parameters​

args​

...[string, string]

Returns​

Promise<{ addresses: object[]; }>


getAnalytics()​

getAnalytics(...args): any

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:257

Parameters​

args​

...any

Returns​

any


getCounts()​

getCounts(...args): Promise<{ acceptsMarketing: number; all: number; hasOrders: number; new: number; noOrders: number; returning: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:173

Parameters​

args​

...[string]

Returns​

Promise<{ acceptsMarketing: number; all: number; hasOrders: number; new: number; noOrders: number; returning: number; }>


getCountsTimeseries()​

getCountsTimeseries(...args): Promise<{ all: object[]; marketing: object[]; newCustomers: object[]; returning: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:179

Parameters​

args​

...[string, object]

Returns​

Promise<{ all: object[]; marketing: object[]; newCustomers: object[]; returning: object[]; }>


getCustomer()​

getCustomer(storeId, customerId): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:637

Parameters​

storeId​

string

customerId​

string

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Deprecated​

Use retrieve() instead

See​

retrieve


getCustomerEvents()​

getCustomerEvents(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:517

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


getCustomerJourney()​

getCustomerJourney(...args): Promise<{ customerId: string; sessions: object[]; totalEvents: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:565

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ customerId: string; sessions: object[]; totalEvents: number; }>


getCustomers()​

getCustomers(storeId): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:629

Parameters​

storeId​

string

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Deprecated​

Use list() instead

See​

list


getCustomerTimeline()​

getCustomerTimeline(storeId, customerId): Promise<{ timeline: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:697

Parameters​

storeId​

string

customerId​

string

Returns​

Promise<{ timeline: object[]; }>

Deprecated​

Use getTimeline() instead

See​

getTimeline


getEventCountsByType()​

getEventCountsByType(...args): Promise<{ data: object[]; endDate?: Date; startDate?: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:547

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; endDate?: Date; startDate?: Date; }>


getEventCountsOverTime()​

getEventCountsOverTime(...args): Promise<{ data: object[]; endDate: Date; eventName?: string; granularity: string; startDate: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:553

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; endDate: Date; eventName?: string; granularity: string; startDate: Date; }>


getEventNames()​

getEventNames(...args): Promise<{ eventNames: object[]; standardTypes: string[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:559

Parameters​

args​

...[string]

Returns​

Promise<{ eventNames: object[]; standardTypes: string[]; }>


getExportMimeType()​

protected getExportMimeType(format): string

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/base.ts:45

Get MIME type for export format

Parameters​

format​

string

Returns​

string

Inherited from​

BaseService.getExportMimeType


getFunnelAnalysis()​

getFunnelAnalysis(...args): Promise<{ endDate?: Date; funnel: object[]; startDate?: Date; steps: string[]; totalConversion: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:571

Parameters​

args​

...[string, object]

Returns​

Promise<{ endDate?: Date; funnel: object[]; startDate?: Date; steps: string[]; totalConversion: number; }>


getNotes()​

getNotes(...args): Promise<{ notes: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:221

Parameters​

args​

...[string, string]

Returns​

Promise<{ notes: object[]; }>


getOrders()​

getOrders(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:251

Parameters​

args​

...[string, object, string]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


getSegment()​

getSegment(storeId, segmentId): Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:713

Parameters​

storeId​

string

segmentId​

string

Returns​

Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Deprecated​

Use retrieveSegment() instead

See​

retrieveSegment


getSegmentAISuggestions()​

getSegmentAISuggestions(...args): Promise<{ suggestions: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:465

Parameters​

args​

...[string, string]

Returns​

Promise<{ suggestions: object[]; }>


getSegmentAnalytics()​

getSegmentAnalytics(...args): Promise<{ addedToday: number; averageOrdersPerMember: number; averageOrderValue: number; currentCount: number; netChange: number; percentageOfTotal: number; removedToday: number; segmentId: string; topMembers?: object[]; totalSpent: number; trend: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:369

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ addedToday: number; averageOrdersPerMember: number; averageOrderValue: number; currentCount: number; netChange: number; percentageOfTotal: number; removedToday: number; segmentId: string; topMembers?: object[]; totalSpent: number; trend: object[]; }>


getSegmentCustomers()​

getSegmentCustomers(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:351

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


getSegmentMembershipChanges()​

getSegmentMembershipChanges(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:387

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


getSegments()​

getSegments(storeId): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:705

Parameters​

storeId​

string

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Deprecated​

Use listSegments() instead

See​

listSegments


getSegmentTemplates()​

getSegmentTemplates(...args): Promise<{ templates: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:333

Parameters​

args​

...[string]

Returns​

Promise<{ templates: object[]; }>


getSegmentTopMembers()​

getSegmentTopMembers(...args): Promise<{ members: object[]; total: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:381

Parameters​

args​

...[string, string, number]

Returns​

Promise<{ members: object[]; total: number; }>


getSegmentTrend()​

getSegmentTrend(...args): Promise<{ trend: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:375

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ trend: object[]; }>


getStoreCredit()​

getStoreCredit(...args): Promise<{ data: { balance: number; currency: string; pendingExpiry: number; recentTransactions: object[]; totalIssued: number; totalUsed: number; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:579

Parameters​

args​

...[string, string]

Returns​

Promise<{ data: { balance: number; currency: string; pendingExpiry: number; recentTransactions: object[]; totalIssued: number; totalUsed: number; }; }>


getTimeline()​

getTimeline(...args): Promise<{ timeline: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:227

Parameters​

args​

...[string, string]

Returns​

Promise<{ timeline: object[]; }>


issueStoreCredit()​

issueStoreCredit(...args): Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:585

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>


list()​

list(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:143

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


listComputedTraits()​

listComputedTraits(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:473

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


listSegments()​

listSegments(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:303

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


listStoreCreditTransactions()​

listStoreCreditTransactions(...args): Promise<{ data: object[]; pagination: { hasNext: boolean; hasPrev: boolean; limit: number; page: number; total: number; totalPages: number; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:615

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; pagination: { hasNext: boolean; hasPrev: boolean; limit: number; page: number; total: number; totalPages: number; }; }>


listStoreEvents()​

listStoreEvents(...args): Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:523

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: object[]; limit: number; page: number; total: number; total_pages: number; }>


mergeCustomers()​

mergeCustomers(...args): Promise<{ archivedCustomerId: string; mergedCustomer: { billingAddress?: { city: string; country: string; line1?: string; line2?: string; postalCode: string; state?: string; street: string; }; createdAt: Date; email: string; firstName?: string; id: string; lastName?: string; metadata?: Record<string, unknown>; phone?: string; shippingAddress?: { city: string; country: string; line1?: string; line2?: string; postalCode: string; state?: string; street: string; }; status: CustomerStatus; storeId: string; updatedAt: Date; }; mergeDetails: { addressesTransferred: number; draftOrdersTransferred: number; metafieldsTransferred: number; notesTransferred: number; ordersTransferred: number; tagsAdded: number; timelineEventsTransferred: number; }; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:209

Parameters​

args​

...[string, object]

Returns​

Promise<{ archivedCustomerId: string; mergedCustomer: { billingAddress?: { city: string; country: string; line1?: string; line2?: string; postalCode: string; state?: string; street: string; }; createdAt: Date; email: string; firstName?: string; id: string; lastName?: string; metadata?: Record<string, unknown>; phone?: string; shippingAddress?: { city: string; country: string; line1?: string; line2?: string; postalCode: string; state?: string; street: string; }; status: CustomerStatus; storeId: string; updatedAt: Date; }; mergeDetails: { addressesTransferred: number; draftOrdersTransferred: number; metafieldsTransferred: number; notesTransferred: number; ordersTransferred: number; tagsAdded: number; timelineEventsTransferred: number; }; success: boolean; }>


previewSegment()​

previewSegment(...args): Promise<{ count: number; customers: object[]; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:339

Parameters​

args​

...[string, object]

Returns​

Promise<{ count: number; customers: object[]; }>


refreshComputedTrait()​

refreshComputedTrait(...args): Promise<{ affectedCustomers: number; lastRefreshAt: Date; success: boolean; traitId: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:503

Parameters​

args​

...[string, string]

Returns​

Promise<{ affectedCustomers: number; lastRefreshAt: Date; success: boolean; traitId: string; }>


refreshSegment()​

refreshSegment(...args): Promise<{ calculationTimeMs: number; customerCount: number; lastCalculatedAt: Date; segmentId: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:405

Parameters​

args​

...[string, string]

Returns​

Promise<{ calculationTimeMs: number; customerCount: number; lastCalculatedAt: Date; segmentId: string; success: boolean; }>


refundToStoreCredit()​

refundToStoreCredit(...args): Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:609

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }>


removeCustomersFromSegment()​

removeCustomersFromSegment(...args): Promise<{ addedCount?: number; newCustomerCount: number; removedCount?: number; segmentId: string; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:399

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ addedCount?: number; newCustomerCount: number; removedCount?: number; segmentId: string; success: boolean; }>


restoreSegment()​

restoreSegment(...args): Promise<{ segmentId: string; status: "active" | "paused" | "archived" | "calculating"; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:417

Parameters​

args​

...[string, string]

Returns​

Promise<{ segmentId: string; status: "active" | "paused" | "archived" | "calculating"; success: boolean; }>


retrieve()​

retrieve(...args): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:149

Parameters​

args​

...[string, string]

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>


retrieveComputedTrait()​

retrieveComputedTrait(...args): Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:479

Parameters​

args​

...[string, string]

Returns​

Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>


retrieveEvent()​

retrieveEvent(...args): Promise<{ customerId: string; deviceType?: string; eventName: string; eventType: "order_cancelled" | "order_updated" | "order_fulfilled" | "order_edited" | "order_placed" | "page_viewed" | "product_viewed" | "collection_viewed" | "search_performed" | "product_added_to_cart" | "product_removed_from_cart" | "cart_viewed" | "checkout_started" | "checkout_completed" | "checkout_abandoned" | "order_refunded" | "order_returned" | "order_exchanged" | "email_received" | "email_opened" | "email_clicked" | "email_bounced" | "email_unsubscribed" | "sms_received" | "sms_clicked" | "coupon_used" | "loyalty_points_earned" | "loyalty_points_redeemed" | "referral_made" | "custom_event"; id: string; properties?: Record<string, unknown>; sessionId?: string; source?: string; timestamp: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:535

Parameters​

args​

...[string, string]

Returns​

Promise<{ customerId: string; deviceType?: string; eventName: string; eventType: "order_cancelled" | "order_updated" | "order_fulfilled" | "order_edited" | "order_placed" | "page_viewed" | "product_viewed" | "collection_viewed" | "search_performed" | "product_added_to_cart" | "product_removed_from_cart" | "cart_viewed" | "checkout_started" | "checkout_completed" | "checkout_abandoned" | "order_refunded" | "order_returned" | "order_exchanged" | "email_received" | "email_opened" | "email_clicked" | "email_bounced" | "email_unsubscribed" | "sms_received" | "sms_clicked" | "coupon_used" | "loyalty_points_earned" | "loyalty_points_redeemed" | "referral_made" | "custom_event"; id: string; properties?: Record<string, unknown>; sessionId?: string; source?: string; timestamp: Date; }>


retrieveSegment()​

retrieveSegment(...args): Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:309

Parameters​

args​

...[string, string]

Returns​

Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>


sendMarketingEmail()​

sendMarketingEmail(...args): Promise<{ message: string; sentCount: number; success: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:263

Parameters​

args​

...[string, object]

Returns​

Promise<{ message: string; sentCount: number; success: boolean; }>


setDefaultAddress()​

setDefaultAddress(...args): Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:295

Parameters​

args​

...[string, string, string]

Returns​

Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>


trackCustomerEvent()​

trackCustomerEvent(...args): Promise<{ customerId: string; deviceType?: string; eventName: string; eventType: "order_cancelled" | "order_updated" | "order_fulfilled" | "order_edited" | "order_placed" | "page_viewed" | "product_viewed" | "collection_viewed" | "search_performed" | "product_added_to_cart" | "product_removed_from_cart" | "cart_viewed" | "checkout_started" | "checkout_completed" | "checkout_abandoned" | "order_refunded" | "order_returned" | "order_exchanged" | "email_received" | "email_opened" | "email_clicked" | "email_bounced" | "email_unsubscribed" | "sms_received" | "sms_clicked" | "coupon_used" | "loyalty_points_earned" | "loyalty_points_redeemed" | "referral_made" | "custom_event"; id: string; properties?: Record<string, unknown>; sessionId?: string; source?: string; timestamp: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:511

Parameters​

args​

...[string, object]

Returns​

Promise<{ customerId: string; deviceType?: string; eventName: string; eventType: "order_cancelled" | "order_updated" | "order_fulfilled" | "order_edited" | "order_placed" | "page_viewed" | "product_viewed" | "collection_viewed" | "search_performed" | "product_added_to_cart" | "product_removed_from_cart" | "cart_viewed" | "checkout_started" | "checkout_completed" | "checkout_abandoned" | "order_refunded" | "order_returned" | "order_exchanged" | "email_received" | "email_opened" | "email_clicked" | "email_bounced" | "email_unsubscribed" | "sms_received" | "sms_clicked" | "coupon_used" | "loyalty_points_earned" | "loyalty_points_redeemed" | "referral_made" | "custom_event"; id: string; properties?: Record<string, unknown>; sessionId?: string; source?: string; timestamp: Date; }>


trackEventsBatch()​

trackEventsBatch(...args): Promise<{ created_count: number; message: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:529

Parameters​

args​

...[string, object[]]

Returns​

Promise<{ created_count: number; message: string; }>


transferStoreCredit()​

transferStoreCredit(...args): Promise<{ data: { fromTransaction: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; toTransaction: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:603

Parameters​

args​

...[string, object]

Returns​

Promise<{ data: { fromTransaction: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; toTransaction: { amount: number; balanceAfter: number; balanceBefore: number; createdAt: string; createdBy?: string; createdByName?: string; currency: string; customerId: string; expiresAt?: string; id: string; note?: string; orderId?: string; orderNumber?: string; reason?: string; refundId?: string; returnId?: string; source?: "MANUAL" | "RETURN" | "TRANSFER" | "REFUND" | "PROMOTION" | "REWARD"; storeCreditId: string; type: "ADJUSTMENT" | "CREDIT" | "DEBIT" | "EXPIRY"; }; }; }>


update()​

update(...args): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:161

Parameters​

args​

...[string, object, string]

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>


updateAddress()​

updateAddress(...args): Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:283

Parameters​

args​

...[string, string, Partial<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; isDefault?: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>, string]

Returns​

Promise<{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }>


updateComputedTrait()​

updateComputedTrait(...args): Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:491

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ config: { aggregation?: "count" | "min" | "max" | "sum" | "avg" | "first" | "last"; customExpression?: string; eventName?: string; propertyName?: string; timeWindowDays?: number; }; description?: string; id: string; isActive: boolean; lastRefreshAt?: Date; name: string; refreshIntervalHrs: number; type: "custom" | "event_count" | "event_sum" | "event_avg" | "first_value" | "last_value" | "most_frequent" | "unique_list"; }>


updateCustomer()​

updateCustomer(storeId, customerId, data): Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:653

Parameters​

storeId​

string

customerId​

string

data​
currency?​

string

defaultAddress?​

{ address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }

defaultAddress.address1​

string

defaultAddress.address2?​

string

defaultAddress.city​

string

defaultAddress.company?​

string

defaultAddress.country​

string

defaultAddress.firstName​

string

defaultAddress.isDefault​

boolean

defaultAddress.lastName​

string

defaultAddress.phone?​

string

defaultAddress.postalCode​

string

defaultAddress.province​

string

email?​

string

emailMarketingConsent?​

"SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"

firstName?​

string

language?​

string

lastName?​

string

market?​

string

metafields?​

object[]

note?​

string

phone?​

string

smsMarketingConsent?​

"SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"

status?​

"DISABLED" | "ACTIVE" | "DECLINED"

tags?​

string[]

taxExempt?​

"PENDING" | "NONE" | "EXEMPT"

Returns​

Promise<{ addresses: object[]; createdAt: Date; currency?: string; defaultAddress?: { address1: string; address2?: string; city: string; company?: string; country: string; firstName: string; id: string; isDefault: boolean; lastName: string; phone?: string; postalCode: string; province: string; }; email: string; emailMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; firstName: string; id: string; language?: string; lastName: string; market?: string; note?: string; phone?: string; rfmSegment?: "CHAMPIONS" | "LOYAL" | "POTENTIAL_LOYALISTS" | "NEW_CUSTOMERS" | "PROMISING" | "NEED_ATTENTION" | "AT_RISK" | "CANT_LOSE" | "HIBERNATING" | "LOST"; smsMarketingConsent: "SUBSCRIBED" | "UNSUBSCRIBED" | "NOT_SUBSCRIBED"; stats?: { averageOrderValue: number; lastOrderDate?: Date; lastOrderId?: string; ordersCount: number; totalSpent: number; }; status: "DISABLED" | "ACTIVE" | "DECLINED"; tags: string[]; taxExempt: "PENDING" | "NONE" | "EXEMPT"; updatedAt: Date; }>

Deprecated​

Use update() instead

See​

update


updateSegment()​

updateSegment(...args): Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:321

Parameters​

args​

...[string, string, object]

Returns​

Promise<{ autoRefresh: boolean; category?: "value" | "custom" | "rfm" | "engagement" | "lifecycle" | "geographic" | "seasonal" | "behavioral" | "predictive"; color?: string; createdAt: Date; createdBy?: { id: string; name: string; }; customerCount: number; description?: string; filterGroups?: FilterGroup; filters?: object[]; icon?: string; id: string; lastCalculatedAt?: Date; lastRefreshAt?: Date; memberCount?: number; name: string; percentageOfTotal?: number; priority: number; query?: string; refreshIntervalHrs?: number; status: "active" | "paused" | "archived" | "calculating"; trend?: object[]; type: "static" | "dynamic"; updatedAt: Date; updatedBy?: { id: string; name: string; }; }>


validateSegmentQuery()​

validateSegmentQuery(...args): Promise<{ errors?: object[]; parsedFilters?: object[]; valid: boolean; }>

Defined in: tanqory-platform-packages/packages/api/sdk/src/services/customers.ts:453

Parameters​

args​

...[string, string]

Returns​

Promise<{ errors?: object[]; parsedFilters?: object[]; valid: boolean; }>