SDK Reference

    @proveanything/smartlinks

    npm install @proveanything/smartlinks
    View on npm →

    Namespaces

    Messaging & Audience

    comms

    Send notifications (push, email, wallet); templating, severity, delivery status.

    21 functions43 types

    queryRecipientsWithAction

    Analytics: Recipients who performed an action, optionally with outcome. POST /admin/collection/:collectionId/comm/query/recipients/with-action

    public
    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) }

    public
    sendTransactional(collectionId: string,
        body: ) → Promise<>

    logCommunicationEvent

    Logging: Append a single communication event. POST /admin/collection/:collectionId/comm/log

    public
    logCommunicationEvent(collectionId: string,
        body: ) → Promise<>

    logBulkCommunicationEvents

    Logging: Append many communication events for a list of IDs. POST /admin/collection/:collectionId/comm/log/bulk

    public
    logBulkCommunicationEvents(collectionId: string,
        body:  | ({ sourceId: string; ids: string[]; idField?: 'userId'|'contactId'; [k: string]: any }) → void

    getPushVapidPublicKey

    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.

    public
    getPushVapidPublicKey(collectionId: string) → Promise<import("../types/comms").>

    registerPush

    Public: Register a Web Push subscription under unified comms. POST /public/collection/:collectionId/comm/push/register

    public
    registerPush(collectionId: string,
        body: import("../types/comms") → void

    getSettings

    Admin: Get current comms settings for a collection. GET /admin/collection/:collectionId/comm.settings Optional query: includeSecret=true to include unsub.secret in response.

    public
    getSettings(collectionId: string,
        opts: { includeSecret?: boolean } = {}) → Promise<import("../types/comms").>

    patchSettings

    Admin: Patch comms settings for a collection. PATCH /admin/collection/:collectionId/comm.settings

    public
    patchSettings(collectionId: string,
        body: import("../types/comms") → void

    getPublicTopics

    Public: Fetch configured topics for a collection. GET /public/collection/:collectionId/comm/topics

    public
    getPublicTopics(collectionId: string) → Promise<import("../types/comms").>

    unsubscribe

    Public: Unsubscribe a contact from a category or channel. GET /public/collection/:collectionId/comm/unsubscribe

    public
    unsubscribe(collectionId: string,
        query: import("../types/comms") → void

    upsertConsent

    Public: Upsert default consent for a contact. POST /public/collection/:collectionId/comm/consent

    public
    upsertConsent(collectionId: string,
        body: import("../types/comms") → void

    upsertPreferences

    Public: Upsert preferences for a specific subject (or default if subject omitted). POST /public/collection/:collectionId/comm/preferences

    public
    upsertPreferences(collectionId: string,
        body: import("../types/comms") → void

    subscribe

    Public: Subscribe/unsubscribe contact to a subject. POST /public/collection/:collectionId/comm/subscribe

    public
    subscribe(collectionId: string,
        body: import("../types/comms") → void

    checkSubscription

    Public: Check subscription status for a subject. GET /public/collection/:collectionId/comm/subscription/check

    public
    checkSubscription(collectionId: string,
        query: import("../types/comms") → void

    listMethods

    Public: List registered contact methods. GET /public/collection/:collectionId/comm/methods

    public
    listMethods(collectionId: string,
        query: import("../types/comms") → void

    registerEmail

    Public: Register email method for a contact. POST /public/collection/:collectionId/comm/email/register

    public
    registerEmail(collectionId: string,
        body: import("../types/comms") → void

    registerSms

    Public: Register SMS method for a contact. POST /public/collection/:collectionId/comm/sms/register

    public
    registerSms(collectionId: string,
        body: import("../types/comms") → void

    resolveSubscriptions

    Public: Resolve contacts for a subject with identity hints. POST /public/collection/:collectionId/comm/subscriptions/resolve

    public
    resolveSubscriptions(collectionId: string,
        body: import("../types/comms") → void

    queryByUser

    Analytics: Query communication events by user or contact. POST /admin/collection/:collectionId/comm/query/by-user

    public
    queryByUser(collectionId: string,
        body:  = {}) → Promise<[]>

    queryRecipientIds

    Analytics: Recipient IDs for a communication source. POST /admin/collection/:collectionId/comm/query/recipient-ids

    public
    queryRecipientIds(collectionId: string,
        body: ) → Promise<[]>

    queryRecipientsWithoutAction

    Analytics: Recipients who did not perform an action. POST /admin/collection/:collectionId/comm/query/recipients/without-action

    public
    queryRecipientsWithoutAction(collectionId: string,
        body: ) → Promise<[]>