Descriptive reference of the main models used across SDK modules.
Table of Contents
Push
Module: push · Package: push/src · File: service-worker.js
Represents a push notification received from the Indigitall platform. Contains all the data needed to display and handle the notification in the browser via the Service Worker.
| Property | Type | Required | Description |
|---|---|---|---|
id | Number | No | Internal push notification identifier |
appKey | String | Yes | Application key used to identify the app in the Indigitall platform |
deviceId | String | No | Identifier of the device that received the push |
title | String | No | Title of the push notification displayed to the user |
body | String | No | Main text body of the push notification |
icon | String | No | URL of the icon image to display in the notification |
image | String | No | URL of the large image to display in the expanded notification |
imageSquare | String | No | URL of a square fallback image when the browser does not support image in notifications |
monochrome | String | No | URL of the monochrome badge icon (badge field in Notification API) |
sendingId | String | No | Identifier of the sending campaign instance |
campaignId | String | No | Identifier of the campaign this push belongs to |
journeyStateId | Number | No | Identifier of the journey state associated with this push |
requireInteraction | Boolean | No | If true, the notification stays visible until the user interacts with it |
extraFields | Object | No | Map of extra field names to merge into the notification options object |
action | PushAction | No | Action to execute when the user taps the notification |
buttons | Array<PushButton> | No | List of action buttons displayed in the expanded notification |
Related models
PushAction — Defines the action executed when a push notification is tapped.
| Property | Type | Description |
|---|---|---|
url | String | URL to open when the notification is clicked |
topics | Array<String> | Topic codes to subscribe/unsubscribe when action fires |
PushButton — Represents an action button shown in the expanded notification.
| Property | Type | Description |
|---|---|---|
label | String | Text label displayed on the button |
action | Object | Action object with url and/or topics to execute on button tap |
Device
Module: core / push · Package: core/src/models · File: Device.js · Extended by: PushDevice
Represents the browser/device registered in the Indigitall platform. PushDevice extends Device with push-specific fields (deviceId, pushToken).
| Property | Type | Required | Description |
|---|---|---|---|
deviceId | String | No | Unique identifier assigned to this device by the Indigitall platform |
pushToken | String | No | Web Push subscription token (vapid endpoint) — only in PushDevice |
browserPublicKey | String | No | VAPID public key stored for the browser subscription |
browserPrivateKey | String | No | VAPID private key stored for the browser subscription |
platform | String | No | Platform identifier (e.g. webpush) |
version | String | No | SDK version string |
productName | String | No | Alias for platform; sent in registration requests |
productVersion | String | No | Alias for version; sent in registration requests |
browserName | String | No | Name of the browser (e.g. Chrome) |
browserVersion | String | No | Version of the browser |
osName | String | No | Operating system name (e.g. Windows, macOS) |
osVersion | String | No | Operating system version string |
deviceType | String | No | Form-factor of the device (e.g. desktop, mobile) |
locale | String | No | Browser language locale (from navigator.language) |
timeZone | String | No | IANA time zone name (from Intl.DateTimeFormat) |
timeOffset | Number | No | UTC offset in minutes (negative of Date.getTimezoneOffset()) |
enabled | Boolean | No | Whether push notifications are enabled for this device |
externalCode | String | No | Custom external identifier provided by the integrating application |
registeredByCookie | Boolean | No | Whether the device was registered via cookie rather than an explicit call |
Customer
Module: customer · Package: customer/src/models · File: Customer.js
Represents a customer (end-user identity) linked to a device in the Indigitall platform.
| Property | Type | Required | Description |
|---|---|---|---|
id | Number | No | Internal Indigitall identifier for the customer record |
customerId | String | No | External identifier provided by the integrating application |
applicationId | Number | No | Indigitall application identifier this customer belongs to |
createdAt | String | No | ISO 8601 timestamp of when the customer record was created |
updatedAt | String | No | ISO 8601 timestamp of the last update to the customer record |
Related models
CustomerField — A key/value pair used to set custom attributes on a customer.
| Property | Type | Description |
|---|---|---|
customerFieldKey | String | The attribute key name |
customerFieldValue | String | The attribute value |
InboxNotification
Module: inbox · Package: inbox/src/models · File: InboxNotification.js
Represents a single notification stored in the user's Inbox.
| Property | Type | Required | Description |
|---|---|---|---|
id | Number | No | Internal notification identifier |
externalId | String | No | External identifier supplied by the integrating application |
sentAt | String | No | ISO 8601 timestamp of when the notification was sent |
status | String | No | Delivery status of the notification. See InboxStatus |
sendingId | String | No | Identifier of the sending campaign instance |
message | Object | No | Notification content payload (title, body, image, etc.) |
campaignId | String | No | Identifier of the campaign this notification belongs to |
read | Boolean | — | Computed — true if sentAt is earlier than the last inbox access time. Default: false |
Related models
InboxStatus — Enum of possible notification statuses.
| Value | Description |
|---|---|
sent | Notification was sent but not interacted with |
click | Notification was clicked by the user |
deleted | Notification was deleted |
InboxAuthMode — Enum that controls how inbox authentication is performed.
| Value | Description |
|---|---|
none | No authentication required |
default | Default Indigitall authentication |
webhook | Authentication delegated to an external webhook |
Inbox — Container model returned by the inbox list API.
| Property | Type | Description |
|---|---|---|
lastAccess | String | Timestamp of the last time the inbox was opened |
page | Number | Current page number (0-based) |
pageSize | Number | Number of notifications per page |
count | Number | Total number of notifications |
totalPages | Number | Total number of pages (Math.trunc(count / pageSize)) |
notifications | Array<InboxNotification> | List of notifications for the current page |
dateFrom | String | Optional date filter (from) |
dateTo | String | Optional date filter (to) |
statusList | Array<String> | Optional status filter list |
isRequestingPage | Boolean | Whether a page request is currently in flight |
InApp
Module: inapp · Package: inapp/src/models · File: InApp.js
Represents an in-app message fetched from the Indigitall platform and stored in local cache.
| Property | Type | Required | Description |
|---|---|---|---|
inAppId | Number | No | Unique identifier of the in-app message |
name | String | No | Display name of the in-app campaign |
version | Number | No | Version number of the in-app message definition |
profile | String | No | Profile tag used to target specific user segments |
showOnce | Boolean | No | If true, the in-app is shown only once per device |
cacheTtl | Number | No | Time-to-live for the cache entry in seconds |
creationDate | String | No | ISO 8601 creation date; defaults to the current date if not provided |
expiredDate | String | No | ISO 8601 expiry date; computed from cacheTtl if not provided |
customData | Object | No | Arbitrary custom payload attached to the in-app message |
filters | Object | No | Audience and display filters applied to this in-app |
schema | InAppSchema | No | Layout schema (dimensions and code) of the in-app |
properties | InAppProperties | No | Display and behaviour properties of the in-app |
inAppShow | InAppShow | — | Tracking counters for display and click events. Always initialised (defaults to zero counts) |
Related models
InAppSchema — Describes the size and code of the in-app layout.
| Property | Type | Description |
|---|---|---|
code | String | Layout code identifier |
width | Number | Width of the in-app container (px) |
height | Number | Height of the in-app container (px) |
InAppProperties — Controls how and when the in-app is displayed.
| Property | Type | Description |
|---|---|---|
contentUrl | String | URL of the HTML content to render inside the in-app |
showTime | Number | Duration in seconds to display the in-app before auto-dismissing |
numberOfShows | Number | Maximum number of times the in-app may be displayed |
numberOfClicks | Number | Maximum number of times the in-app may be clicked |
dismissForever | Boolean | If true, the in-app is never shown again after being dismissed |
layout | InAppLayout | Layout styling options |
action | InAppAction | Action executed when the in-app is tapped |
InAppAction — Defines the action executed when the in-app (or a button) is tapped.
| Property | Type | Description |
|---|---|---|
actionId | String | Unique identifier of the action |
type | String | Action type. Values: url, app, no_action |
url | String | URL to open when type is url |
app | String | Deep-link or path to open when type is app |
no_action | Boolean | If true, no navigation is performed |
destroy | Boolean | If true, the in-app is destroyed/dismissed after the action fires |
topics | Array<String> | Topic codes to subscribe/unsubscribe when the action fires |
InAppLayout — Styling options for the in-app container.
| Property | Type | Description |
|---|---|---|
borderRadius | Number | Border radius in pixels for the in-app card |
InAppShow — Tracks how many times an in-app has been shown or clicked in the current session.
| Property | Type | Default | Description |
|---|---|---|---|
timesShowed | Number | 0 | Number of times this in-app has been shown |
timesClicked | Number | 0 | Number of times this in-app has been clicked |
wasDismissed | Boolean | false | Whether the in-app was dismissed by the user |
InAppShowOnce — Persistent record stored in session storage to enforce show-once/show-limit logic.
| Property | Type | Description |
|---|---|---|
inAppId | Number | Identifier of the in-app message |
scheme | String | Page scheme/URL where the in-app was last shown |
creationDate | String | Date the record was first created |
expiredDate | String | Date after which the record is considered expired |
timesShowed | Number | Accumulated number of times shown |
timesClicked | Number | Accumulated number of times clicked |
lastVersionId | Number | Version of the in-app definition when last shown |
InAppForm — Represents a form embedded inside an in-app message.
| Property | Type | Description |
|---|---|---|
inAppId | Number | Identifier of the parent in-app message |
formId | String | Unique form identifier |
inappVersion | Number | Version of the in-app this form belongs to |
inputs | Array<InAppFormInput> | List of input fields in the form |
InAppFormInput — A single input field inside an InAppForm.
| Property | Type | Description |
|---|---|---|
id | String | Unique field identifier |
name | String | Field name / label |
type | String | Input type. Values: text, number, radio, checkbox, select |
required | Boolean | Whether the field must be filled before submitting |
sendToCustomer | Boolean | If true, the field value is forwarded to the Customer API on form submission |
Topic
Module: push · Package: push/src/models · File: INTopic.js
Represents a notification topic that a device can subscribe or unsubscribe to.
| Property | Type | Required | Description |
|---|---|---|---|
code | String | No | Unique code identifying the topic |
name | String | No | Human-readable name of the topic |
visible | Boolean | No | Whether the topic is visible in topic-management UIs |
parentCode | String | No | Code of the parent topic (for hierarchical topic trees) |
subscribed | Boolean | — | Whether the current device is subscribed to this topic. Default: false |
Note:
LiveActivityis not part of this JavaScript Web Push SDK. It is an iOS-native feature available in the iOS SDK only.
