SDK Reference
@proveanything/smartlinks
Namespaces
comms
Send notifications (push, email, wallet); templating, severity, delivery status.
queryRecipientsWithAction
Analytics: Recipients who performed an action, optionally with outcome. POST /admin/collection/:collectionId/comm/query/recipients/with-action
queryRecipientsWithAction(collectionId: string,
body: ) → Promise<[] | []>sendTransactional
Send a single transactional message to one contact using a template. No broadcast record is created. The send is logged to the contact's communication history with sourceType: 'transactional'. POST /admin/collection/:collectionId/comm.send typescript const result = await comms.sendTransactional(collectionId, { contactId: 'e4f2a1b0-...', templateId: 'warranty-update', channel: 'preferred', props: { claimRef: 'CLM-0042', decision: 'approved' }, include: { productId: 'prod-abc123', appCase: 'c9d1e2f3-...' }, ref: 'warranty-decision-notification', appId: 'warrantyApp', }) if (result.ok) { console.log(`Sent via ${result.channel}`, result.messageId) } else { console.error('Send failed:', result.error) }
sendTransactional(collectionId: string,
body: ) → Promise<>logCommunicationEvent
Logging: Append a single communication event. POST /admin/collection/:collectionId/comm/log
logCommunicationEvent(collectionId: string,
body: ) → Promise<>logBulkCommunicationEvents
Logging: Append many communication events for a list of IDs. POST /admin/collection/:collectionId/comm/log/bulk
logBulkCommunicationEvents(collectionId: string,
body: | ({ sourceId: string; ids: string[]; idField?: 'userId'|'contactId'; [k: string]: any }) → voidgetPushVapidPublicKey
Public: Get VAPID public key used for Web Push subscriptions. GET /public/collection/:collectionId/comm/push/vapidPublicKey Note: Key may be global; path is collection-scoped for consistency.
getPushVapidPublicKey(collectionId: string) → Promise<import("../types/comms").>registerPush
Public: Register a Web Push subscription under unified comms. POST /public/collection/:collectionId/comm/push/register
registerPush(collectionId: string,
body: import("../types/comms") → voidgetSettings
Admin: Get current comms settings for a collection. GET /admin/collection/:collectionId/comm.settings Optional query: includeSecret=true to include unsub.secret in response.
getSettings(collectionId: string,
opts: { includeSecret?: boolean } = {}) → Promise<import("../types/comms").>patchSettings
Admin: Patch comms settings for a collection. PATCH /admin/collection/:collectionId/comm.settings
patchSettings(collectionId: string,
body: import("../types/comms") → voidgetPublicTopics
Public: Fetch configured topics for a collection. GET /public/collection/:collectionId/comm/topics
getPublicTopics(collectionId: string) → Promise<import("../types/comms").>unsubscribe
Public: Unsubscribe a contact from a category or channel. GET /public/collection/:collectionId/comm/unsubscribe
unsubscribe(collectionId: string,
query: import("../types/comms") → voidupsertConsent
Public: Upsert default consent for a contact. POST /public/collection/:collectionId/comm/consent
upsertConsent(collectionId: string,
body: import("../types/comms") → voidupsertPreferences
Public: Upsert preferences for a specific subject (or default if subject omitted). POST /public/collection/:collectionId/comm/preferences
upsertPreferences(collectionId: string,
body: import("../types/comms") → voidsubscribe
Public: Subscribe/unsubscribe contact to a subject. POST /public/collection/:collectionId/comm/subscribe
subscribe(collectionId: string,
body: import("../types/comms") → voidcheckSubscription
Public: Check subscription status for a subject. GET /public/collection/:collectionId/comm/subscription/check
checkSubscription(collectionId: string,
query: import("../types/comms") → voidlistMethods
Public: List registered contact methods. GET /public/collection/:collectionId/comm/methods
listMethods(collectionId: string,
query: import("../types/comms") → voidregisterEmail
Public: Register email method for a contact. POST /public/collection/:collectionId/comm/email/register
registerEmail(collectionId: string,
body: import("../types/comms") → voidregisterSms
Public: Register SMS method for a contact. POST /public/collection/:collectionId/comm/sms/register
registerSms(collectionId: string,
body: import("../types/comms") → voidresolveSubscriptions
Public: Resolve contacts for a subject with identity hints. POST /public/collection/:collectionId/comm/subscriptions/resolve
resolveSubscriptions(collectionId: string,
body: import("../types/comms") → voidqueryByUser
Analytics: Query communication events by user or contact. POST /admin/collection/:collectionId/comm/query/by-user
queryByUser(collectionId: string,
body: = {}) → Promise<[]>queryRecipientIds
Analytics: Recipient IDs for a communication source. POST /admin/collection/:collectionId/comm/query/recipient-ids
queryRecipientIds(collectionId: string,
body: ) → Promise<[]>queryRecipientsWithoutAction
Analytics: Recipients who did not perform an action. POST /admin/collection/:collectionId/comm/query/recipients/without-action
queryRecipientsWithoutAction(collectionId: string,
body: ) → Promise<[]>