@lepsto/sdk-app 91.0.1 → 92.1.0
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.
- package/CHANGELOG.md +8 -4
- package/dist/_types/gen/client.gen.d.ts +7 -1
- package/dist/_types/gen/types.gen.d.ts +577 -46
- package/dist/_types/gen/users/index.d.ts +1 -1
- package/dist/_types/gen/users/queryOptions.gen.d.ts +17 -1
- package/dist/index.cjs +166 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -1
- package/dist/users/index.cjs +20 -0
- package/dist/users/index.cjs.map +1 -1
- package/dist/users/index.js +17 -1
- package/dist/users/index.js.map +1 -1
- package/package.json +2 -2
- package/src/gen/bindings.gen.ts +158 -0
- package/src/gen/client.gen.ts +14 -0
- package/src/gen/manifest.gen.ts +8 -0
- package/src/gen/types.gen.ts +585 -46
- package/src/gen/users/index.ts +1 -1
- package/src/gen/users/queryOptions.gen.ts +25 -0
package/src/gen/types.gen.ts
CHANGED
|
@@ -67057,13 +67057,38 @@ source_authority?: ("policy" | "official" | "team" | "informal")
|
|
|
67057
67057
|
|
|
67058
67058
|
export interface BrainMemoryAddOutput {
|
|
67059
67059
|
/**
|
|
67060
|
-
* True when the memory was stored
|
|
67060
|
+
* True when the memory was stored and its facts extracted (or there was nothing to extract). False when extraction failed — the raw memory is still stored under memory_id — or when the memory was not stored at all
|
|
67061
67061
|
*/
|
|
67062
67062
|
success: boolean
|
|
67063
67063
|
/**
|
|
67064
67064
|
* Engine id of the memory just stored; keep it to read, replace or delete the memory later
|
|
67065
67065
|
*/
|
|
67066
67066
|
memory_id: string
|
|
67067
|
+
/**
|
|
67068
|
+
* Present only when success is false. Tell stored from not stored by `extraction`, not by this code: with extraction.status 'failed' the raw memory IS stored and searchable under memory_id, only its facts are missing — do not re-add the same content, that stores a duplicate. With no `extraction` nothing was stored, and the add can be retried
|
|
67069
|
+
*/
|
|
67070
|
+
error_code?: string
|
|
67071
|
+
/**
|
|
67072
|
+
* What fact extraction made of this memory
|
|
67073
|
+
*/
|
|
67074
|
+
extraction?: {
|
|
67075
|
+
/**
|
|
67076
|
+
* How many memories extraction stored from this write, across every derived layer (facts, identity, profile, summaries) — not a count of facts alone
|
|
67077
|
+
*/
|
|
67078
|
+
items: number
|
|
67079
|
+
/**
|
|
67080
|
+
* ok = at least one memory was derived from it (a summary counts, so ok alone does not promise a fact); empty = nothing new came out of it — the content held nothing durable, or everything in it is already in memory; failed = extraction broke, the raw memory is stored without facts; skipped = the engine does not extract in this mode
|
|
67081
|
+
*/
|
|
67082
|
+
status: ("ok" | "empty" | "failed" | "skipped")
|
|
67083
|
+
/**
|
|
67084
|
+
* The engine's code when extraction failed — or, with status ok, when it ran degraded but still stored its facts
|
|
67085
|
+
*/
|
|
67086
|
+
error_code?: string
|
|
67087
|
+
/**
|
|
67088
|
+
* The engine's own words for that failure or degradation — quote it when reporting a problem
|
|
67089
|
+
*/
|
|
67090
|
+
error_message?: string
|
|
67091
|
+
}
|
|
67067
67092
|
/**
|
|
67068
67093
|
* Engine request id for this call — quote it when reporting a problem
|
|
67069
67094
|
*/
|
|
@@ -67417,6 +67442,23 @@ knowledge: {
|
|
|
67417
67442
|
*/
|
|
67418
67443
|
entityCount: number
|
|
67419
67444
|
}
|
|
67445
|
+
/**
|
|
67446
|
+
* Raw memories left without facts, for the caller's product and scope. Counts only, and a lower bound. Null when the engine could not compute it
|
|
67447
|
+
*/
|
|
67448
|
+
extraction_gaps: ({
|
|
67449
|
+
/**
|
|
67450
|
+
* Raw memories (l1_raw) the scope holds
|
|
67451
|
+
*/
|
|
67452
|
+
raw_total: number
|
|
67453
|
+
/**
|
|
67454
|
+
* Raw memories no derived memory (fact, identity) points back to — their extraction produced nothing
|
|
67455
|
+
*/
|
|
67456
|
+
raw_without_derived: number
|
|
67457
|
+
/**
|
|
67458
|
+
* Of those, raw memories still in shadow status
|
|
67459
|
+
*/
|
|
67460
|
+
shadow_without_derived: number
|
|
67461
|
+
} | null)
|
|
67420
67462
|
}
|
|
67421
67463
|
|
|
67422
67464
|
export interface BrainMemoryUpdateInput {
|
|
@@ -115427,9 +115469,9 @@ export interface UsersApikeysCreateInput {
|
|
|
115427
115469
|
*/
|
|
115428
115470
|
name: string
|
|
115429
115471
|
/**
|
|
115430
|
-
* '
|
|
115472
|
+
* 'publishable' mints a non-secret key (upk_…) that identifies this product in browser flows and stays readable. It is the only key type: the secret server key (usk_…) is retired.
|
|
115431
115473
|
*/
|
|
115432
|
-
type:
|
|
115474
|
+
type: "publishable"
|
|
115433
115475
|
}
|
|
115434
115476
|
|
|
115435
115477
|
export interface UsersApikeysCreateOutput {
|
|
@@ -115446,15 +115488,15 @@ key: string
|
|
|
115446
115488
|
*/
|
|
115447
115489
|
name: string
|
|
115448
115490
|
/**
|
|
115449
|
-
* `
|
|
115491
|
+
* `publishable` — a browser-safe key (upk_…). It is the only type.
|
|
115450
115492
|
*/
|
|
115451
|
-
type:
|
|
115493
|
+
type: "publishable"
|
|
115452
115494
|
/**
|
|
115453
|
-
* The full value of
|
|
115495
|
+
* The full value of the key, which is not a secret and stays readable.
|
|
115454
115496
|
*/
|
|
115455
115497
|
value: (string | null)
|
|
115456
115498
|
/**
|
|
115457
|
-
* `
|
|
115499
|
+
* `upk_` plus six characters — enough to recognise a key, never to use one.
|
|
115458
115500
|
*/
|
|
115459
115501
|
prefix: string
|
|
115460
115502
|
/**
|
|
@@ -115484,15 +115526,15 @@ id: string
|
|
|
115484
115526
|
*/
|
|
115485
115527
|
name: string
|
|
115486
115528
|
/**
|
|
115487
|
-
* `
|
|
115529
|
+
* `publishable` — a browser-safe key (upk_…). It is the only type.
|
|
115488
115530
|
*/
|
|
115489
|
-
type:
|
|
115531
|
+
type: "publishable"
|
|
115490
115532
|
/**
|
|
115491
|
-
* The full value of
|
|
115533
|
+
* The full value of the key, which is not a secret and stays readable.
|
|
115492
115534
|
*/
|
|
115493
115535
|
value: (string | null)
|
|
115494
115536
|
/**
|
|
115495
|
-
* `
|
|
115537
|
+
* `upk_` plus six characters — enough to recognise a key, never to use one.
|
|
115496
115538
|
*/
|
|
115497
115539
|
prefix: string
|
|
115498
115540
|
/**
|
|
@@ -115520,15 +115562,15 @@ id: string
|
|
|
115520
115562
|
*/
|
|
115521
115563
|
name: string
|
|
115522
115564
|
/**
|
|
115523
|
-
* `
|
|
115565
|
+
* `publishable` — a browser-safe key (upk_…). It is the only type.
|
|
115524
115566
|
*/
|
|
115525
|
-
type:
|
|
115567
|
+
type: "publishable"
|
|
115526
115568
|
/**
|
|
115527
|
-
* The full value of
|
|
115569
|
+
* The full value of the key, which is not a secret and stays readable.
|
|
115528
115570
|
*/
|
|
115529
115571
|
value: (string | null)
|
|
115530
115572
|
/**
|
|
115531
|
-
* `
|
|
115573
|
+
* `upk_` plus six characters — enough to recognise a key, never to use one.
|
|
115532
115574
|
*/
|
|
115533
115575
|
prefix: string
|
|
115534
115576
|
/**
|
|
@@ -115694,7 +115736,7 @@ from: (string | null)
|
|
|
115694
115736
|
*/
|
|
115695
115737
|
codeEnabled: boolean
|
|
115696
115738
|
/**
|
|
115697
|
-
* Base URL magic links point at, e.g. "https://public.
|
|
115739
|
+
* Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
|
|
115698
115740
|
*/
|
|
115699
115741
|
linkBaseUrl: (string | null)
|
|
115700
115742
|
/**
|
|
@@ -115818,7 +115860,7 @@ successMessage: string
|
|
|
115818
115860
|
*/
|
|
115819
115861
|
doubleOptIn: boolean
|
|
115820
115862
|
/**
|
|
115821
|
-
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180:
|
|
115863
|
+
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
|
|
115822
115864
|
*/
|
|
115823
115865
|
retentionDays: number
|
|
115824
115866
|
/**
|
|
@@ -115989,7 +116031,7 @@ from?: (string | null)
|
|
|
115989
116031
|
*/
|
|
115990
116032
|
codeEnabled?: boolean
|
|
115991
116033
|
/**
|
|
115992
|
-
* Base URL magic links point at, e.g. "https://public.
|
|
116034
|
+
* Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
|
|
115993
116035
|
*/
|
|
115994
116036
|
linkBaseUrl?: (string | null)
|
|
115995
116037
|
/**
|
|
@@ -116159,7 +116201,7 @@ successMessage?: string
|
|
|
116159
116201
|
*/
|
|
116160
116202
|
doubleOptIn?: boolean
|
|
116161
116203
|
/**
|
|
116162
|
-
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180:
|
|
116204
|
+
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
|
|
116163
116205
|
*/
|
|
116164
116206
|
retentionDays?: number
|
|
116165
116207
|
/**
|
|
@@ -116372,7 +116414,7 @@ from: (string | null)
|
|
|
116372
116414
|
*/
|
|
116373
116415
|
codeEnabled: boolean
|
|
116374
116416
|
/**
|
|
116375
|
-
* Base URL magic links point at, e.g. "https://public.
|
|
116417
|
+
* Base URL magic links point at, e.g. "https://public.lepsto.com/{productId}/users". Null uses the deployment default.
|
|
116376
116418
|
*/
|
|
116377
116419
|
linkBaseUrl: (string | null)
|
|
116378
116420
|
/**
|
|
@@ -116496,7 +116538,7 @@ successMessage: string
|
|
|
116496
116538
|
*/
|
|
116497
116539
|
doubleOptIn: boolean
|
|
116498
116540
|
/**
|
|
116499
|
-
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180:
|
|
116541
|
+
* How long an UNCONVERTED waitlist entry — still pending, or invited and never registered — is kept, counted from SIGN-UP, before the sweep erases it. Default 180: Lepsto Privacy Policy §6 promises deletion 6 months from sign-up. The bound stays wide because a client Product answers to its own privacy policy, not ours.
|
|
116500
116542
|
*/
|
|
116501
116543
|
retentionDays: number
|
|
116502
116544
|
/**
|
|
@@ -116841,11 +116883,11 @@ finishedAt: string
|
|
|
116841
116883
|
*/
|
|
116842
116884
|
waitlistRetentionDays: number
|
|
116843
116885
|
/**
|
|
116844
|
-
* What
|
|
116886
|
+
* What Lepsto PUBLISHED, in its Privacy Policy §6: a waitlist address that never converted is deleted 6 months from sign-up. It rides along so the window above can be read against the promise it came from, rather than as a number with no provenance.
|
|
116845
116887
|
*/
|
|
116846
116888
|
waitlistPromisedMaxDays: number
|
|
116847
116889
|
/**
|
|
116848
|
-
* True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is
|
|
116890
|
+
* True when this product configured a window WIDER than the published 180 days. Nothing refuses such a value and nothing clamps it — §6 is Lepsto’s own policy and a client Product answers to its own, under which a longer window may be perfectly lawful. This flag exists INSTEAD of that ceiling: a deliberate divergence from what Lepsto published must be diagnosable in one call rather than found by comparing two numbers nobody thought to compare.
|
|
116849
116891
|
*/
|
|
116850
116892
|
waitlistWiderThanPromised: boolean
|
|
116851
116893
|
}
|
|
@@ -117306,7 +117348,7 @@ refreshReuseDetected: number
|
|
|
117306
117348
|
*/
|
|
117307
117349
|
since: string
|
|
117308
117350
|
/**
|
|
117309
|
-
* Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `waitlisted` and the ban/delete/erase timestamps.
|
|
117351
|
+
* Point-in-time directory populations by DERIVED status — `user` has no status column, these are computed from `kind`, `waitlisted` and the ban/delete/erase timestamps.
|
|
117310
117352
|
*/
|
|
117311
117353
|
users: {
|
|
117312
117354
|
/**
|
|
@@ -117314,7 +117356,7 @@ users: {
|
|
|
117314
117356
|
*/
|
|
117315
117357
|
total: number
|
|
117316
117358
|
/**
|
|
117317
|
-
* Full accounts: not waitlisted, not banned, not deleted, not erased.
|
|
117359
|
+
* Full accounts: kind 'account', not waitlisted, not banned, not deleted, not erased.
|
|
117318
117360
|
*/
|
|
117319
117361
|
active: number
|
|
117320
117362
|
/**
|
|
@@ -117329,6 +117371,10 @@ erased: number
|
|
|
117329
117371
|
* SOFT-deleted and still recoverable — not erased.
|
|
117330
117372
|
*/
|
|
117331
117373
|
deleted: number
|
|
117374
|
+
/**
|
|
117375
|
+
* People the Product knows who have no credential and have never signed in (kind 'contact'), excluding deleted and erased ones. Never part of `active`, and never billed as retained users.
|
|
117376
|
+
*/
|
|
117377
|
+
contacts: number
|
|
117332
117378
|
/**
|
|
117333
117379
|
* Waitlist signups with no credential yet.
|
|
117334
117380
|
*/
|
|
@@ -117383,6 +117429,251 @@ createdInWindow: number
|
|
|
117383
117429
|
}
|
|
117384
117430
|
}
|
|
117385
117431
|
|
|
117432
|
+
export interface UsersTouchesCreateInput {
|
|
117433
|
+
/**
|
|
117434
|
+
* What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
|
|
117435
|
+
*/
|
|
117436
|
+
body: string
|
|
117437
|
+
/**
|
|
117438
|
+
* The end user this interaction was with.
|
|
117439
|
+
*/
|
|
117440
|
+
userId: string
|
|
117441
|
+
/**
|
|
117442
|
+
* How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
|
|
117443
|
+
*/
|
|
117444
|
+
channel: ("message" | "call" | "meeting" | "note" | "email")
|
|
117445
|
+
/**
|
|
117446
|
+
* Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
|
|
117447
|
+
*/
|
|
117448
|
+
direction: ("outbound" | "inbound" | "none")
|
|
117449
|
+
/**
|
|
117450
|
+
* When it happened (ISO 8601). Omit to mean now — pass it when logging after the fact, which may be any time in the past.
|
|
117451
|
+
*/
|
|
117452
|
+
occurredAt?: string
|
|
117453
|
+
}
|
|
117454
|
+
|
|
117455
|
+
export interface UsersTouchesCreateOutput {
|
|
117456
|
+
/**
|
|
117457
|
+
* Id of this touch. Pass it to users_touches_update or _delete.
|
|
117458
|
+
*/
|
|
117459
|
+
id: string
|
|
117460
|
+
/**
|
|
117461
|
+
* What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
|
|
117462
|
+
*/
|
|
117463
|
+
body: string
|
|
117464
|
+
/**
|
|
117465
|
+
* The end user this interaction was with.
|
|
117466
|
+
*/
|
|
117467
|
+
userId: string
|
|
117468
|
+
/**
|
|
117469
|
+
* Id of the operator or agent that logged it, verbatim.
|
|
117470
|
+
*/
|
|
117471
|
+
actorId: string
|
|
117472
|
+
/**
|
|
117473
|
+
* How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
|
|
117474
|
+
*/
|
|
117475
|
+
channel: ("message" | "call" | "meeting" | "note" | "email")
|
|
117476
|
+
/**
|
|
117477
|
+
* Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
|
|
117478
|
+
*/
|
|
117479
|
+
actorType: ("operator" | "agent")
|
|
117480
|
+
/**
|
|
117481
|
+
* When the touch was logged (ISO 8601).
|
|
117482
|
+
*/
|
|
117483
|
+
createdAt: string
|
|
117484
|
+
/**
|
|
117485
|
+
* Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
|
|
117486
|
+
*/
|
|
117487
|
+
direction: ("outbound" | "inbound" | "none")
|
|
117488
|
+
/**
|
|
117489
|
+
* Product this touch belongs to. Never an input — it comes from the calling identity.
|
|
117490
|
+
*/
|
|
117491
|
+
productId: string
|
|
117492
|
+
/**
|
|
117493
|
+
* When the touch was last edited (ISO 8601).
|
|
117494
|
+
*/
|
|
117495
|
+
updatedAt: string
|
|
117496
|
+
/**
|
|
117497
|
+
* When the interaction happened (ISO 8601) — not when it was logged.
|
|
117498
|
+
*/
|
|
117499
|
+
occurredAt: string
|
|
117500
|
+
}
|
|
117501
|
+
|
|
117502
|
+
export interface UsersTouchesDiscardInput {
|
|
117503
|
+
/**
|
|
117504
|
+
* Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
|
|
117505
|
+
*/
|
|
117506
|
+
force?: boolean
|
|
117507
|
+
/**
|
|
117508
|
+
* The end user the touch belongs to.
|
|
117509
|
+
*/
|
|
117510
|
+
userId: string
|
|
117511
|
+
/**
|
|
117512
|
+
* The touch to delete, from users_touches_list.
|
|
117513
|
+
*/
|
|
117514
|
+
touchId: string
|
|
117515
|
+
}
|
|
117516
|
+
|
|
117517
|
+
export interface UsersTouchesDiscardOutput {
|
|
117518
|
+
/**
|
|
117519
|
+
* Id of the touch that was deleted.
|
|
117520
|
+
*/
|
|
117521
|
+
id: string
|
|
117522
|
+
/**
|
|
117523
|
+
* The end user it belonged to.
|
|
117524
|
+
*/
|
|
117525
|
+
userId: string
|
|
117526
|
+
/**
|
|
117527
|
+
* Always true — a failure answers 404 instead.
|
|
117528
|
+
*/
|
|
117529
|
+
deleted: true
|
|
117530
|
+
}
|
|
117531
|
+
|
|
117532
|
+
export interface UsersTouchesListInput {
|
|
117533
|
+
/**
|
|
117534
|
+
* Page size, 1-100. Default 50.
|
|
117535
|
+
*/
|
|
117536
|
+
limit?: number
|
|
117537
|
+
/**
|
|
117538
|
+
* Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
|
|
117539
|
+
*/
|
|
117540
|
+
cursor?: string
|
|
117541
|
+
/**
|
|
117542
|
+
* The end user whose touches to list.
|
|
117543
|
+
*/
|
|
117544
|
+
userId: string
|
|
117545
|
+
/**
|
|
117546
|
+
* Only touches on this channel. Omit for all of them.
|
|
117547
|
+
*/
|
|
117548
|
+
channel?: ("message" | "call" | "meeting" | "note" | "email")
|
|
117549
|
+
}
|
|
117550
|
+
|
|
117551
|
+
export interface UsersTouchesListOutput {
|
|
117552
|
+
/**
|
|
117553
|
+
* The page of touches, newest first.
|
|
117554
|
+
*/
|
|
117555
|
+
items: {
|
|
117556
|
+
/**
|
|
117557
|
+
* Id of this touch. Pass it to users_touches_update or _delete.
|
|
117558
|
+
*/
|
|
117559
|
+
id: string
|
|
117560
|
+
/**
|
|
117561
|
+
* What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
|
|
117562
|
+
*/
|
|
117563
|
+
body: string
|
|
117564
|
+
/**
|
|
117565
|
+
* The end user this interaction was with.
|
|
117566
|
+
*/
|
|
117567
|
+
userId: string
|
|
117568
|
+
/**
|
|
117569
|
+
* Id of the operator or agent that logged it, verbatim.
|
|
117570
|
+
*/
|
|
117571
|
+
actorId: string
|
|
117572
|
+
/**
|
|
117573
|
+
* How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
|
|
117574
|
+
*/
|
|
117575
|
+
channel: ("message" | "call" | "meeting" | "note" | "email")
|
|
117576
|
+
/**
|
|
117577
|
+
* Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
|
|
117578
|
+
*/
|
|
117579
|
+
actorType: ("operator" | "agent")
|
|
117580
|
+
/**
|
|
117581
|
+
* When the touch was logged (ISO 8601).
|
|
117582
|
+
*/
|
|
117583
|
+
createdAt: string
|
|
117584
|
+
/**
|
|
117585
|
+
* Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
|
|
117586
|
+
*/
|
|
117587
|
+
direction: ("outbound" | "inbound" | "none")
|
|
117588
|
+
/**
|
|
117589
|
+
* Product this touch belongs to. Never an input — it comes from the calling identity.
|
|
117590
|
+
*/
|
|
117591
|
+
productId: string
|
|
117592
|
+
/**
|
|
117593
|
+
* When the touch was last edited (ISO 8601).
|
|
117594
|
+
*/
|
|
117595
|
+
updatedAt: string
|
|
117596
|
+
/**
|
|
117597
|
+
* When the interaction happened (ISO 8601) — not when it was logged.
|
|
117598
|
+
*/
|
|
117599
|
+
occurredAt: string
|
|
117600
|
+
}[]
|
|
117601
|
+
/**
|
|
117602
|
+
* Pass as `cursor` for the next page. Null when this was the last one.
|
|
117603
|
+
*/
|
|
117604
|
+
nextCursor: (string | null)
|
|
117605
|
+
}
|
|
117606
|
+
|
|
117607
|
+
export interface UsersTouchesUpdateInput {
|
|
117608
|
+
/**
|
|
117609
|
+
* Replacement text, 1-8192 characters. Omit to leave it unchanged.
|
|
117610
|
+
*/
|
|
117611
|
+
body?: string
|
|
117612
|
+
/**
|
|
117613
|
+
* Act on a touch somebody else logged. Without it a touch you did not author answers 404, exactly as a touch that does not exist does — the refusal must not tell you the row is there. Every forced call is recorded in the audit trail.
|
|
117614
|
+
*/
|
|
117615
|
+
force?: boolean
|
|
117616
|
+
/**
|
|
117617
|
+
* The end user the touch belongs to.
|
|
117618
|
+
*/
|
|
117619
|
+
userId: string
|
|
117620
|
+
/**
|
|
117621
|
+
* The touch to edit, from users_touches_list.
|
|
117622
|
+
*/
|
|
117623
|
+
touchId: string
|
|
117624
|
+
/**
|
|
117625
|
+
* Correct when it happened (ISO 8601). Omit to leave it unchanged.
|
|
117626
|
+
*/
|
|
117627
|
+
occurredAt?: string
|
|
117628
|
+
}
|
|
117629
|
+
|
|
117630
|
+
export interface UsersTouchesUpdateOutput {
|
|
117631
|
+
/**
|
|
117632
|
+
* Id of this touch. Pass it to users_touches_update or _delete.
|
|
117633
|
+
*/
|
|
117634
|
+
id: string
|
|
117635
|
+
/**
|
|
117636
|
+
* What was said or done, free text, 1-8192 characters. Personal data: it is whatever an operator typed about this person.
|
|
117637
|
+
*/
|
|
117638
|
+
body: string
|
|
117639
|
+
/**
|
|
117640
|
+
* The end user this interaction was with.
|
|
117641
|
+
*/
|
|
117642
|
+
userId: string
|
|
117643
|
+
/**
|
|
117644
|
+
* Id of the operator or agent that logged it, verbatim.
|
|
117645
|
+
*/
|
|
117646
|
+
actorId: string
|
|
117647
|
+
/**
|
|
117648
|
+
* How the person was touched: 'message', 'call', 'meeting', 'note' (an internal observation nobody sent) or 'email' sent OUTSIDE the platform. Email this toolkit sent is not logged here — read those from the mail toolkit.
|
|
117649
|
+
*/
|
|
117650
|
+
channel: ("message" | "call" | "meeting" | "note" | "email")
|
|
117651
|
+
/**
|
|
117652
|
+
* Who logged it: 'operator' (a human) or 'agent' (a workflow or agent principal).
|
|
117653
|
+
*/
|
|
117654
|
+
actorType: ("operator" | "agent")
|
|
117655
|
+
/**
|
|
117656
|
+
* When the touch was logged (ISO 8601).
|
|
117657
|
+
*/
|
|
117658
|
+
createdAt: string
|
|
117659
|
+
/**
|
|
117660
|
+
* Which way it went: 'outbound' (you reached them), 'inbound' (they reached you) or 'none'. A 'note' or a 'meeting' must be 'none'.
|
|
117661
|
+
*/
|
|
117662
|
+
direction: ("outbound" | "inbound" | "none")
|
|
117663
|
+
/**
|
|
117664
|
+
* Product this touch belongs to. Never an input — it comes from the calling identity.
|
|
117665
|
+
*/
|
|
117666
|
+
productId: string
|
|
117667
|
+
/**
|
|
117668
|
+
* When the touch was last edited (ISO 8601).
|
|
117669
|
+
*/
|
|
117670
|
+
updatedAt: string
|
|
117671
|
+
/**
|
|
117672
|
+
* When the interaction happened (ISO 8601) — not when it was logged.
|
|
117673
|
+
*/
|
|
117674
|
+
occurredAt: string
|
|
117675
|
+
}
|
|
117676
|
+
|
|
117386
117677
|
export interface UsersUsersBanInput {
|
|
117387
117678
|
/**
|
|
117388
117679
|
* The opaque user id returned by users_users_create or _list.
|
|
@@ -117395,10 +117686,22 @@ export interface UsersUsersBanOutput {
|
|
|
117395
117686
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
117396
117687
|
*/
|
|
117397
117688
|
id: string
|
|
117689
|
+
/**
|
|
117690
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
117691
|
+
*/
|
|
117692
|
+
kind: ("account" | "contact")
|
|
117398
117693
|
/**
|
|
117399
117694
|
* The user's display name. Null when nobody set one.
|
|
117400
117695
|
*/
|
|
117401
117696
|
name: (string | null)
|
|
117697
|
+
/**
|
|
117698
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
117699
|
+
*/
|
|
117700
|
+
tags: string[]
|
|
117701
|
+
/**
|
|
117702
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
117703
|
+
*/
|
|
117704
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
117402
117705
|
/**
|
|
117403
117706
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
117404
117707
|
*/
|
|
@@ -117431,6 +117734,10 @@ productId: string
|
|
|
117431
117734
|
* When the user was last changed (ISO 8601).
|
|
117432
117735
|
*/
|
|
117433
117736
|
updatedAt: string
|
|
117737
|
+
/**
|
|
117738
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
117739
|
+
*/
|
|
117740
|
+
mergedFrom: (string | null)
|
|
117434
117741
|
/**
|
|
117435
117742
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
117436
117743
|
*/
|
|
@@ -117444,9 +117751,9 @@ identifiers: {
|
|
|
117444
117751
|
*/
|
|
117445
117752
|
id: string
|
|
117446
117753
|
/**
|
|
117447
|
-
* What kind of identifier this is
|
|
117754
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
117448
117755
|
*/
|
|
117449
|
-
type: "email"
|
|
117756
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117450
117757
|
/**
|
|
117451
117758
|
* The address as the user typed it, for display.
|
|
117452
117759
|
*/
|
|
@@ -117468,6 +117775,10 @@ valueCanonical: string
|
|
|
117468
117775
|
*/
|
|
117469
117776
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
117470
117777
|
}[]
|
|
117778
|
+
/**
|
|
117779
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
117780
|
+
*/
|
|
117781
|
+
lastTouchAt: (string | null)
|
|
117471
117782
|
/**
|
|
117472
117783
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
117473
117784
|
*/
|
|
@@ -117502,6 +117813,10 @@ unsafeMetadata: {
|
|
|
117502
117813
|
privateMetadata: {
|
|
117503
117814
|
[k: string]: unknown
|
|
117504
117815
|
}
|
|
117816
|
+
/**
|
|
117817
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
117818
|
+
*/
|
|
117819
|
+
mergedIntoUserId: (string | null)
|
|
117505
117820
|
/**
|
|
117506
117821
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
117507
117822
|
*/
|
|
@@ -117513,10 +117828,22 @@ emailChangeLockedUntil: (string | null)
|
|
|
117513
117828
|
}
|
|
117514
117829
|
|
|
117515
117830
|
export interface UsersUsersCreateInput {
|
|
117831
|
+
/**
|
|
117832
|
+
* What kind of person to create. 'account' (the default) can sign in. 'contact' is somebody the Product knows who has NO credential — a contact may not carry `password`, `waitlisted` or `requiresReset` (`contact_cannot_hold_credentials`), is hidden from the default users_users_list view, and is never counted as a retained user. A contact becomes an account only by proving an address, never by an operator setting this.
|
|
117833
|
+
*/
|
|
117834
|
+
kind?: ("account" | "contact")
|
|
117516
117835
|
/**
|
|
117517
117836
|
* The user's display name.
|
|
117518
117837
|
*/
|
|
117519
117838
|
name?: string
|
|
117839
|
+
/**
|
|
117840
|
+
* Free labels for this person. Trimmed, lowercased and de-duplicated on write; at most 32 of at most 64 characters each.
|
|
117841
|
+
*/
|
|
117842
|
+
tags?: string[]
|
|
117843
|
+
/**
|
|
117844
|
+
* The relationship stage to start them at, in funnel order: new, contacted, replied, engaged, converted, lost. Default 'new'.
|
|
117845
|
+
*/
|
|
117846
|
+
stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
117520
117847
|
/**
|
|
117521
117848
|
* URL of the user's avatar image.
|
|
117522
117849
|
*/
|
|
@@ -117547,7 +117874,7 @@ testUser?: boolean
|
|
|
117547
117874
|
*/
|
|
117548
117875
|
waitlisted?: boolean
|
|
117549
117876
|
/**
|
|
117550
|
-
*
|
|
117877
|
+
* How this user is reached: their email addresses, plus any contact channels (`phone`, `telegram`, `linkedin`, `x`). At least one is required.
|
|
117551
117878
|
*
|
|
117552
117879
|
* @minItems 1
|
|
117553
117880
|
*/
|
|
@@ -117555,13 +117882,13 @@ identifiers: [{
|
|
|
117555
117882
|
/**
|
|
117556
117883
|
* Identifier kind. Only 'email' exists in this phase.
|
|
117557
117884
|
*/
|
|
117558
|
-
type: "email"
|
|
117885
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117559
117886
|
/**
|
|
117560
117887
|
* The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
|
|
117561
117888
|
*/
|
|
117562
117889
|
value: string
|
|
117563
117890
|
/**
|
|
117564
|
-
* Record the identifier as already verified (use for trusted imports). Only ONE verified copy of
|
|
117891
|
+
* Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
|
|
117565
117892
|
*/
|
|
117566
117893
|
verified?: boolean
|
|
117567
117894
|
/**
|
|
@@ -117572,13 +117899,13 @@ isPrimary?: boolean
|
|
|
117572
117899
|
/**
|
|
117573
117900
|
* Identifier kind. Only 'email' exists in this phase.
|
|
117574
117901
|
*/
|
|
117575
|
-
type: "email"
|
|
117902
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117576
117903
|
/**
|
|
117577
117904
|
* The email address. Stored canonicalised (lowercase, NFC) plus raw for display.
|
|
117578
117905
|
*/
|
|
117579
117906
|
value: string
|
|
117580
117907
|
/**
|
|
117581
|
-
* Record the identifier as already verified (use for trusted imports). Only ONE verified copy of
|
|
117908
|
+
* Record the identifier as already verified (use for trusted imports). IGNORED for contact channels, which are always stored unverified — nothing here can prove a phone or a handle. Only ONE verified copy of an email may exist per product; unverified duplicates are allowed. Default false.
|
|
117582
117909
|
*/
|
|
117583
117910
|
verified?: boolean
|
|
117584
117911
|
/**
|
|
@@ -117617,10 +117944,22 @@ export interface UsersUsersCreateOutput {
|
|
|
117617
117944
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
117618
117945
|
*/
|
|
117619
117946
|
id: string
|
|
117947
|
+
/**
|
|
117948
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
117949
|
+
*/
|
|
117950
|
+
kind: ("account" | "contact")
|
|
117620
117951
|
/**
|
|
117621
117952
|
* The user's display name. Null when nobody set one.
|
|
117622
117953
|
*/
|
|
117623
117954
|
name: (string | null)
|
|
117955
|
+
/**
|
|
117956
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
117957
|
+
*/
|
|
117958
|
+
tags: string[]
|
|
117959
|
+
/**
|
|
117960
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
117961
|
+
*/
|
|
117962
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
117624
117963
|
/**
|
|
117625
117964
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
117626
117965
|
*/
|
|
@@ -117653,6 +117992,10 @@ productId: string
|
|
|
117653
117992
|
* When the user was last changed (ISO 8601).
|
|
117654
117993
|
*/
|
|
117655
117994
|
updatedAt: string
|
|
117995
|
+
/**
|
|
117996
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
117997
|
+
*/
|
|
117998
|
+
mergedFrom: (string | null)
|
|
117656
117999
|
/**
|
|
117657
118000
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
117658
118001
|
*/
|
|
@@ -117666,9 +118009,9 @@ identifiers: {
|
|
|
117666
118009
|
*/
|
|
117667
118010
|
id: string
|
|
117668
118011
|
/**
|
|
117669
|
-
* What kind of identifier this is
|
|
118012
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
117670
118013
|
*/
|
|
117671
|
-
type: "email"
|
|
118014
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117672
118015
|
/**
|
|
117673
118016
|
* The address as the user typed it, for display.
|
|
117674
118017
|
*/
|
|
@@ -117690,6 +118033,10 @@ valueCanonical: string
|
|
|
117690
118033
|
*/
|
|
117691
118034
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
117692
118035
|
}[]
|
|
118036
|
+
/**
|
|
118037
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
118038
|
+
*/
|
|
118039
|
+
lastTouchAt: (string | null)
|
|
117693
118040
|
/**
|
|
117694
118041
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
117695
118042
|
*/
|
|
@@ -117724,6 +118071,10 @@ unsafeMetadata: {
|
|
|
117724
118071
|
privateMetadata: {
|
|
117725
118072
|
[k: string]: unknown
|
|
117726
118073
|
}
|
|
118074
|
+
/**
|
|
118075
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
118076
|
+
*/
|
|
118077
|
+
mergedIntoUserId: (string | null)
|
|
117727
118078
|
/**
|
|
117728
118079
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
117729
118080
|
*/
|
|
@@ -117746,10 +118097,22 @@ export interface UsersUsersDeleteOutput {
|
|
|
117746
118097
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
117747
118098
|
*/
|
|
117748
118099
|
id: string
|
|
118100
|
+
/**
|
|
118101
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
118102
|
+
*/
|
|
118103
|
+
kind: ("account" | "contact")
|
|
117749
118104
|
/**
|
|
117750
118105
|
* The user's display name. Null when nobody set one.
|
|
117751
118106
|
*/
|
|
117752
118107
|
name: (string | null)
|
|
118108
|
+
/**
|
|
118109
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
118110
|
+
*/
|
|
118111
|
+
tags: string[]
|
|
118112
|
+
/**
|
|
118113
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
118114
|
+
*/
|
|
118115
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
117753
118116
|
/**
|
|
117754
118117
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
117755
118118
|
*/
|
|
@@ -117782,6 +118145,10 @@ productId: string
|
|
|
117782
118145
|
* When the user was last changed (ISO 8601).
|
|
117783
118146
|
*/
|
|
117784
118147
|
updatedAt: string
|
|
118148
|
+
/**
|
|
118149
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
118150
|
+
*/
|
|
118151
|
+
mergedFrom: (string | null)
|
|
117785
118152
|
/**
|
|
117786
118153
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
117787
118154
|
*/
|
|
@@ -117795,9 +118162,9 @@ identifiers: {
|
|
|
117795
118162
|
*/
|
|
117796
118163
|
id: string
|
|
117797
118164
|
/**
|
|
117798
|
-
* What kind of identifier this is
|
|
118165
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
117799
118166
|
*/
|
|
117800
|
-
type: "email"
|
|
118167
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117801
118168
|
/**
|
|
117802
118169
|
* The address as the user typed it, for display.
|
|
117803
118170
|
*/
|
|
@@ -117819,6 +118186,10 @@ valueCanonical: string
|
|
|
117819
118186
|
*/
|
|
117820
118187
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
117821
118188
|
}[]
|
|
118189
|
+
/**
|
|
118190
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
118191
|
+
*/
|
|
118192
|
+
lastTouchAt: (string | null)
|
|
117822
118193
|
/**
|
|
117823
118194
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
117824
118195
|
*/
|
|
@@ -117853,6 +118224,10 @@ unsafeMetadata: {
|
|
|
117853
118224
|
privateMetadata: {
|
|
117854
118225
|
[k: string]: unknown
|
|
117855
118226
|
}
|
|
118227
|
+
/**
|
|
118228
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
118229
|
+
*/
|
|
118230
|
+
mergedIntoUserId: (string | null)
|
|
117856
118231
|
/**
|
|
117857
118232
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
117858
118233
|
*/
|
|
@@ -117864,6 +118239,10 @@ emailChangeLockedUntil: (string | null)
|
|
|
117864
118239
|
}
|
|
117865
118240
|
|
|
117866
118241
|
export interface UsersUsersExportInput {
|
|
118242
|
+
/**
|
|
118243
|
+
* Filter by kind: 'account' or 'contact'. Omit for accounts only, unless `includeContacts` is true.
|
|
118244
|
+
*/
|
|
118245
|
+
kind?: ("account" | "contact")
|
|
117867
118246
|
/**
|
|
117868
118247
|
* Rows per page, 1-500. Default 100.
|
|
117869
118248
|
*/
|
|
@@ -117884,6 +118263,10 @@ status?: ("active" | "banned" | "waitlisted")
|
|
|
117884
118263
|
* Include soft-deleted users. Default false.
|
|
117885
118264
|
*/
|
|
117886
118265
|
includeDeleted?: boolean
|
|
118266
|
+
/**
|
|
118267
|
+
* Include CONTACTS alongside accounts, so one pass exports both. Default false — the same rule this export already applies to waitlist signups and test users.
|
|
118268
|
+
*/
|
|
118269
|
+
includeContacts?: boolean
|
|
117887
118270
|
}
|
|
117888
118271
|
|
|
117889
118272
|
export interface UsersUsersExportOutput {
|
|
@@ -117893,10 +118276,22 @@ users: {
|
|
|
117893
118276
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
117894
118277
|
*/
|
|
117895
118278
|
id: string
|
|
118279
|
+
/**
|
|
118280
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
118281
|
+
*/
|
|
118282
|
+
kind: ("account" | "contact")
|
|
117896
118283
|
/**
|
|
117897
118284
|
* The user's display name. Null when nobody set one.
|
|
117898
118285
|
*/
|
|
117899
118286
|
name: (string | null)
|
|
118287
|
+
/**
|
|
118288
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
118289
|
+
*/
|
|
118290
|
+
tags: string[]
|
|
118291
|
+
/**
|
|
118292
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
118293
|
+
*/
|
|
118294
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
117900
118295
|
/**
|
|
117901
118296
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
117902
118297
|
*/
|
|
@@ -117929,6 +118324,10 @@ productId: string
|
|
|
117929
118324
|
* When the user was last changed (ISO 8601).
|
|
117930
118325
|
*/
|
|
117931
118326
|
updatedAt: string
|
|
118327
|
+
/**
|
|
118328
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
118329
|
+
*/
|
|
118330
|
+
mergedFrom: (string | null)
|
|
117932
118331
|
/**
|
|
117933
118332
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
117934
118333
|
*/
|
|
@@ -117942,9 +118341,9 @@ identifiers: {
|
|
|
117942
118341
|
*/
|
|
117943
118342
|
id: string
|
|
117944
118343
|
/**
|
|
117945
|
-
* What kind of identifier this is
|
|
118344
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
117946
118345
|
*/
|
|
117947
|
-
type: "email"
|
|
118346
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
117948
118347
|
/**
|
|
117949
118348
|
* The address as the user typed it, for display.
|
|
117950
118349
|
*/
|
|
@@ -117966,6 +118365,10 @@ valueCanonical: string
|
|
|
117966
118365
|
*/
|
|
117967
118366
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
117968
118367
|
}[]
|
|
118368
|
+
/**
|
|
118369
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
118370
|
+
*/
|
|
118371
|
+
lastTouchAt: (string | null)
|
|
117969
118372
|
/**
|
|
117970
118373
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
117971
118374
|
*/
|
|
@@ -118000,6 +118403,10 @@ unsafeMetadata: {
|
|
|
118000
118403
|
privateMetadata: {
|
|
118001
118404
|
[k: string]: unknown
|
|
118002
118405
|
}
|
|
118406
|
+
/**
|
|
118407
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
118408
|
+
*/
|
|
118409
|
+
mergedIntoUserId: (string | null)
|
|
118003
118410
|
/**
|
|
118004
118411
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
118005
118412
|
*/
|
|
@@ -118025,10 +118432,22 @@ export interface UsersUsersGetOutput {
|
|
|
118025
118432
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
118026
118433
|
*/
|
|
118027
118434
|
id: string
|
|
118435
|
+
/**
|
|
118436
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
118437
|
+
*/
|
|
118438
|
+
kind: ("account" | "contact")
|
|
118028
118439
|
/**
|
|
118029
118440
|
* The user's display name. Null when nobody set one.
|
|
118030
118441
|
*/
|
|
118031
118442
|
name: (string | null)
|
|
118443
|
+
/**
|
|
118444
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
118445
|
+
*/
|
|
118446
|
+
tags: string[]
|
|
118447
|
+
/**
|
|
118448
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
118449
|
+
*/
|
|
118450
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118032
118451
|
/**
|
|
118033
118452
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
118034
118453
|
*/
|
|
@@ -118061,6 +118480,10 @@ productId: string
|
|
|
118061
118480
|
* When the user was last changed (ISO 8601).
|
|
118062
118481
|
*/
|
|
118063
118482
|
updatedAt: string
|
|
118483
|
+
/**
|
|
118484
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
118485
|
+
*/
|
|
118486
|
+
mergedFrom: (string | null)
|
|
118064
118487
|
/**
|
|
118065
118488
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
118066
118489
|
*/
|
|
@@ -118074,9 +118497,9 @@ identifiers: {
|
|
|
118074
118497
|
*/
|
|
118075
118498
|
id: string
|
|
118076
118499
|
/**
|
|
118077
|
-
* What kind of identifier this is
|
|
118500
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
118078
118501
|
*/
|
|
118079
|
-
type: "email"
|
|
118502
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
118080
118503
|
/**
|
|
118081
118504
|
* The address as the user typed it, for display.
|
|
118082
118505
|
*/
|
|
@@ -118098,6 +118521,10 @@ valueCanonical: string
|
|
|
118098
118521
|
*/
|
|
118099
118522
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
118100
118523
|
}[]
|
|
118524
|
+
/**
|
|
118525
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
118526
|
+
*/
|
|
118527
|
+
lastTouchAt: (string | null)
|
|
118101
118528
|
/**
|
|
118102
118529
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
118103
118530
|
*/
|
|
@@ -118132,6 +118559,10 @@ unsafeMetadata: {
|
|
|
118132
118559
|
privateMetadata: {
|
|
118133
118560
|
[k: string]: unknown
|
|
118134
118561
|
}
|
|
118562
|
+
/**
|
|
118563
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
118564
|
+
*/
|
|
118565
|
+
mergedIntoUserId: (string | null)
|
|
118135
118566
|
/**
|
|
118136
118567
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
118137
118568
|
*/
|
|
@@ -118186,6 +118617,10 @@ userId: (string | null)
|
|
|
118186
118617
|
* How many rows were passed over — an address already in the directory, typically.
|
|
118187
118618
|
*/
|
|
118188
118619
|
skipped: number
|
|
118620
|
+
/**
|
|
118621
|
+
* How many of the CREATED users were contacts (`kind: 'contact'`). A row that was skipped or failed is not counted.
|
|
118622
|
+
*/
|
|
118623
|
+
contacts: number
|
|
118189
118624
|
/**
|
|
118190
118625
|
* How many rows you submitted.
|
|
118191
118626
|
*/
|
|
@@ -118235,6 +118670,14 @@ expiresAt: string
|
|
|
118235
118670
|
}
|
|
118236
118671
|
|
|
118237
118672
|
export interface UsersUsersListInput {
|
|
118673
|
+
/**
|
|
118674
|
+
* Return only people carrying this tag. ONE tag, matched against the stored (lowercased) value and ANDed with the other filters.
|
|
118675
|
+
*/
|
|
118676
|
+
tag?: string
|
|
118677
|
+
/**
|
|
118678
|
+
* Filter by kind: 'account' or 'contact'. Passing 'contact' is how you list contacts — they are hidden otherwise. Omit for accounts only, unless `includeContacts` is true.
|
|
118679
|
+
*/
|
|
118680
|
+
kind?: ("account" | "contact")
|
|
118238
118681
|
/**
|
|
118239
118682
|
* Page size, 1-100. Default 25.
|
|
118240
118683
|
*/
|
|
@@ -118243,6 +118686,10 @@ limit?: number
|
|
|
118243
118686
|
* Case-insensitive substring match against the user's identifiers (email) and name.
|
|
118244
118687
|
*/
|
|
118245
118688
|
query?: string
|
|
118689
|
+
/**
|
|
118690
|
+
* Filter by relationship stage: new, contacted, replied, engaged, converted or lost. Omit for every stage.
|
|
118691
|
+
*/
|
|
118692
|
+
stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118246
118693
|
/**
|
|
118247
118694
|
* Opaque cursor from a previous response's `nextCursor`. Omit for the first page.
|
|
118248
118695
|
*/
|
|
@@ -118255,6 +118702,18 @@ status?: ("active" | "banned" | "waitlisted")
|
|
|
118255
118702
|
* Include soft-deleted users. Default false — deleted users are hidden.
|
|
118256
118703
|
*/
|
|
118257
118704
|
includeDeleted?: boolean
|
|
118705
|
+
/**
|
|
118706
|
+
* Only people whose most recent logged interaction happened at or after this instant (ISO 8601). People never touched are EXCLUDED by this filter — list without it to see everyone.
|
|
118707
|
+
*/
|
|
118708
|
+
lastTouchAfter?: string
|
|
118709
|
+
/**
|
|
118710
|
+
* Include CONTACTS. Default false: a contact has no credential and has never signed in, so it is not part of the directory an operator browses — the same rule waitlist signups and test users follow. Use `kind: "contact"` to see only them.
|
|
118711
|
+
*/
|
|
118712
|
+
includeContacts?: boolean
|
|
118713
|
+
/**
|
|
118714
|
+
* Only people whose most recent logged interaction happened before this instant (ISO 8601) — the "gone quiet" list. People never touched are EXCLUDED rather than treated as infinitely stale; list without this filter to see everyone.
|
|
118715
|
+
*/
|
|
118716
|
+
lastTouchBefore?: string
|
|
118258
118717
|
/**
|
|
118259
118718
|
* Include TEST USERS. Default false: a test user is a fixture, not a customer — it is excluded from metering and from this listing for the same reason. Ask for it explicitly when you are debugging the fixtures themselves.
|
|
118260
118719
|
*/
|
|
@@ -118274,10 +118733,22 @@ users: {
|
|
|
118274
118733
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
118275
118734
|
*/
|
|
118276
118735
|
id: string
|
|
118736
|
+
/**
|
|
118737
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
118738
|
+
*/
|
|
118739
|
+
kind: ("account" | "contact")
|
|
118277
118740
|
/**
|
|
118278
118741
|
* The user's display name. Null when nobody set one.
|
|
118279
118742
|
*/
|
|
118280
118743
|
name: (string | null)
|
|
118744
|
+
/**
|
|
118745
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
118746
|
+
*/
|
|
118747
|
+
tags: string[]
|
|
118748
|
+
/**
|
|
118749
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
118750
|
+
*/
|
|
118751
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118281
118752
|
/**
|
|
118282
118753
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
118283
118754
|
*/
|
|
@@ -118310,6 +118781,10 @@ productId: string
|
|
|
118310
118781
|
* When the user was last changed (ISO 8601).
|
|
118311
118782
|
*/
|
|
118312
118783
|
updatedAt: string
|
|
118784
|
+
/**
|
|
118785
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
118786
|
+
*/
|
|
118787
|
+
mergedFrom: (string | null)
|
|
118313
118788
|
/**
|
|
118314
118789
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
118315
118790
|
*/
|
|
@@ -118323,9 +118798,9 @@ identifiers: {
|
|
|
118323
118798
|
*/
|
|
118324
118799
|
id: string
|
|
118325
118800
|
/**
|
|
118326
|
-
* What kind of identifier this is
|
|
118801
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
118327
118802
|
*/
|
|
118328
|
-
type: "email"
|
|
118803
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
118329
118804
|
/**
|
|
118330
118805
|
* The address as the user typed it, for display.
|
|
118331
118806
|
*/
|
|
@@ -118347,6 +118822,10 @@ valueCanonical: string
|
|
|
118347
118822
|
*/
|
|
118348
118823
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
118349
118824
|
}[]
|
|
118825
|
+
/**
|
|
118826
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
118827
|
+
*/
|
|
118828
|
+
lastTouchAt: (string | null)
|
|
118350
118829
|
/**
|
|
118351
118830
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
118352
118831
|
*/
|
|
@@ -118381,6 +118860,10 @@ unsafeMetadata: {
|
|
|
118381
118860
|
privateMetadata: {
|
|
118382
118861
|
[k: string]: unknown
|
|
118383
118862
|
}
|
|
118863
|
+
/**
|
|
118864
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
118865
|
+
*/
|
|
118866
|
+
mergedIntoUserId: (string | null)
|
|
118384
118867
|
/**
|
|
118385
118868
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
118386
118869
|
*/
|
|
@@ -118434,10 +118917,22 @@ export interface UsersUsersUnbanOutput {
|
|
|
118434
118917
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
118435
118918
|
*/
|
|
118436
118919
|
id: string
|
|
118920
|
+
/**
|
|
118921
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
118922
|
+
*/
|
|
118923
|
+
kind: ("account" | "contact")
|
|
118437
118924
|
/**
|
|
118438
118925
|
* The user's display name. Null when nobody set one.
|
|
118439
118926
|
*/
|
|
118440
118927
|
name: (string | null)
|
|
118928
|
+
/**
|
|
118929
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
118930
|
+
*/
|
|
118931
|
+
tags: string[]
|
|
118932
|
+
/**
|
|
118933
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
118934
|
+
*/
|
|
118935
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118441
118936
|
/**
|
|
118442
118937
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
118443
118938
|
*/
|
|
@@ -118470,6 +118965,10 @@ productId: string
|
|
|
118470
118965
|
* When the user was last changed (ISO 8601).
|
|
118471
118966
|
*/
|
|
118472
118967
|
updatedAt: string
|
|
118968
|
+
/**
|
|
118969
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
118970
|
+
*/
|
|
118971
|
+
mergedFrom: (string | null)
|
|
118473
118972
|
/**
|
|
118474
118973
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
118475
118974
|
*/
|
|
@@ -118483,9 +118982,9 @@ identifiers: {
|
|
|
118483
118982
|
*/
|
|
118484
118983
|
id: string
|
|
118485
118984
|
/**
|
|
118486
|
-
* What kind of identifier this is
|
|
118985
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
118487
118986
|
*/
|
|
118488
|
-
type: "email"
|
|
118987
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
118489
118988
|
/**
|
|
118490
118989
|
* The address as the user typed it, for display.
|
|
118491
118990
|
*/
|
|
@@ -118507,6 +119006,10 @@ valueCanonical: string
|
|
|
118507
119006
|
*/
|
|
118508
119007
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
118509
119008
|
}[]
|
|
119009
|
+
/**
|
|
119010
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
119011
|
+
*/
|
|
119012
|
+
lastTouchAt: (string | null)
|
|
118510
119013
|
/**
|
|
118511
119014
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
118512
119015
|
*/
|
|
@@ -118541,6 +119044,10 @@ unsafeMetadata: {
|
|
|
118541
119044
|
privateMetadata: {
|
|
118542
119045
|
[k: string]: unknown
|
|
118543
119046
|
}
|
|
119047
|
+
/**
|
|
119048
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
119049
|
+
*/
|
|
119050
|
+
mergedIntoUserId: (string | null)
|
|
118544
119051
|
/**
|
|
118545
119052
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
118546
119053
|
*/
|
|
@@ -118556,6 +119063,14 @@ export interface UsersUsersUpdateInput {
|
|
|
118556
119063
|
* The user's display name. Pass null to clear.
|
|
118557
119064
|
*/
|
|
118558
119065
|
name?: (string | null)
|
|
119066
|
+
/**
|
|
119067
|
+
* REPLACES the whole tag list — send every tag you want stored, not just the new ones. Trimmed, lowercased and de-duplicated on write.
|
|
119068
|
+
*/
|
|
119069
|
+
tags?: string[]
|
|
119070
|
+
/**
|
|
119071
|
+
* Move the person to this relationship stage. A real change publishes `users/user.stage-changed`; a patch that changes ONLY the stage deliberately does not also publish `users/user.updated`, so a workflow that writes stages does not wake itself.
|
|
119072
|
+
*/
|
|
119073
|
+
stage?: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118559
119074
|
/**
|
|
118560
119075
|
* The user to update.
|
|
118561
119076
|
*/
|
|
@@ -118603,10 +119118,22 @@ export interface UsersUsersUpdateOutput {
|
|
|
118603
119118
|
* Id of this end user. Pass it to any users_users_* tool.
|
|
118604
119119
|
*/
|
|
118605
119120
|
id: string
|
|
119121
|
+
/**
|
|
119122
|
+
* What kind of person this row is: 'account' (can sign in) or 'contact' (known to the Product, no credential, never signed in). A contact is hidden from the default users_users_list view and is never counted as a retained user.
|
|
119123
|
+
*/
|
|
119124
|
+
kind: ("account" | "contact")
|
|
118606
119125
|
/**
|
|
118607
119126
|
* The user's display name. Null when nobody set one.
|
|
118608
119127
|
*/
|
|
118609
119128
|
name: (string | null)
|
|
119129
|
+
/**
|
|
119130
|
+
* Free labels on this person, stored trimmed, lowercased and de-duplicated.
|
|
119131
|
+
*/
|
|
119132
|
+
tags: string[]
|
|
119133
|
+
/**
|
|
119134
|
+
* The relationship stage, in funnel order: new, contacted, replied, engaged, converted, lost. A real change publishes `users/user.stage-changed`.
|
|
119135
|
+
*/
|
|
119136
|
+
stage: ("new" | "contacted" | "replied" | "engaged" | "converted" | "lost")
|
|
118610
119137
|
/**
|
|
118611
119138
|
* When the user was banned (ISO 8601). Null while they are not banned.
|
|
118612
119139
|
*/
|
|
@@ -118639,6 +119166,10 @@ productId: string
|
|
|
118639
119166
|
* When the user was last changed (ISO 8601).
|
|
118640
119167
|
*/
|
|
118641
119168
|
updatedAt: string
|
|
119169
|
+
/**
|
|
119170
|
+
* Set when you asked for an id that was merged into this account — it is the id you asked for, and this is the row it now lives in. Null on every ordinary read.
|
|
119171
|
+
*/
|
|
119172
|
+
mergedFrom: (string | null)
|
|
118642
119173
|
/**
|
|
118643
119174
|
* Whether this user is still on the waitlist and cannot sign in yet.
|
|
118644
119175
|
*/
|
|
@@ -118652,9 +119183,9 @@ identifiers: {
|
|
|
118652
119183
|
*/
|
|
118653
119184
|
id: string
|
|
118654
119185
|
/**
|
|
118655
|
-
* What kind of identifier this is
|
|
119186
|
+
* What kind of identifier this is: `email`, `phone`, `telegram`, `linkedin` or `x`. Only `email` can be signed in with — the other four are contact channels, reachable but never part of the auth plane.
|
|
118656
119187
|
*/
|
|
118657
|
-
type: "email"
|
|
119188
|
+
type: ("email" | "phone" | "telegram" | "linkedin" | "x")
|
|
118658
119189
|
/**
|
|
118659
119190
|
* The address as the user typed it, for display.
|
|
118660
119191
|
*/
|
|
@@ -118676,6 +119207,10 @@ valueCanonical: string
|
|
|
118676
119207
|
*/
|
|
118677
119208
|
verificationStatus: ("unverified" | "verified" | "expired")
|
|
118678
119209
|
}[]
|
|
119210
|
+
/**
|
|
119211
|
+
* When this person was last touched — the most recent logged interaction (ISO 8601). Null when nobody has logged one. This is when the interaction HAPPENED, not when it was logged.
|
|
119212
|
+
*/
|
|
119213
|
+
lastTouchAt: (string | null)
|
|
118679
119214
|
/**
|
|
118680
119215
|
* When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
|
|
118681
119216
|
*/
|
|
@@ -118710,6 +119245,10 @@ unsafeMetadata: {
|
|
|
118710
119245
|
privateMetadata: {
|
|
118711
119246
|
[k: string]: unknown
|
|
118712
119247
|
}
|
|
119248
|
+
/**
|
|
119249
|
+
* The user this person was merged INTO, when they were merged. Null for everybody else — follow it to find where their records went.
|
|
119250
|
+
*/
|
|
119251
|
+
mergedIntoUserId: (string | null)
|
|
118713
119252
|
/**
|
|
118714
119253
|
* Id of the primary identifier row. Null when there is no primary identifier.
|
|
118715
119254
|
*/
|