Models Reference

Descriptive reference of the main models used across SDK modules.


Table of Contents


Push

Module: push · Package (Android): Com.Indigitall.Android.Push.Models · File: Push.cs · Extends: CorePush

Represents a push notification received from the Indigitall platform. Available on the Android platform through the native binding. Contains all the data needed to display and handle a notification.

iOS note: On iOS, the push notification payload is handled via UNNotificationContent and the NotificationService extension. The equivalent fields are populated from the APNs payload.

PropertyTypeRequiredDescription
IdintNoInternal push notification identifier
AppKeystring?YesApplication key used to identify the app in the Indigitall platform
Titlestring?NoTitle of the push notification displayed to the user
Bodystring?NoMain text body of the push notification
Iconstring?NoURL of the icon image to display in the notification
Imagestring?NoURL of the large image to display in the expanded notification
GifIList<string>?NoList of URLs for GIF frames to display in the notification
LayoutLayout (enum)NoDisplay layout of the notification. Values: layout_native, half_width, full_width, custom. Default: layout_native
Datastring?NoCustom payload string to pass arbitrary data to the app when the notification is handled
SilentboolNoIf true, the notification is delivered silently without showing any UI. Default: false
SecuredDatastring?NoDecrypted secured payload attached to the notification. Populated automatically from securedData/securedKey fields
DisposableboolNoIf true, the notification will be dismissed after being displayed. Default: true
SendingIdstring?NoIdentifier of the sending campaign instance
CampaignIdstring?NoIdentifier of the campaign this push belongs to
PushIdintNoIdentifier of the push template
JourneyStateIdintNoIdentifier of the journey state associated with this push
JourneyExecutionintNoJourney execution counter
CjCurrentStateIdintNoCurrent state ID in the customer journey
SendEventAckboolNoIf true, an acknowledgement event should be sent back to the server upon reception. Default: false
ApplicationIdInteger?NoIndigitall application identifier

Constants

ConstantValueDescription
ExtraPush"com.indigitall.android.EXTRA_PUSH"Intent extra key used to retrieve the push payload from the bundle
PushAckReceived".PUSH_ACK_RECEIVED"Broadcast action suffix for push acknowledgement
PushReceived".action.PUSH_RECEIVED"Broadcast action suffix for push reception

Usage (Android)

// In an Activity that handles the push tap action
if (Intent?.Extras?.ContainsKey(Push.ExtraPush) == true)
{
    var push = new Push(this, Intent.Extras.GetString(Push.ExtraPush));
    string? securedData = push.SecuredData;
    string? customData  = push.Data;
}

Device

Module: push · Namespace: Com.Indigitall.Maui.Push.Models · File: sdk.Maui.Push/Models/INDMDevice.cs

Represents the device registered in the Indigitall platform. Returned in initialization callbacks and used to identify the device across sessions.

PropertyTypeRequiredDescription
DeviceIdstringYesUnique identifier assigned to this device by the Indigitall platform
PushTokenstringNoPlatform push token (FCM on Android, APNs on iOS) used to deliver notifications
EnabledboolNoWhether the device has push notifications enabled. Default: true
PlatformstringNoPlatform name (e.g., android, ios)
VersionstringNoSDK version string
ProductNamestringNoSDK product name. Default: value from INDMConstants.ProductName
ProductVersionstringNoSDK product version. Default: value from INDMConstants.ProductVersion
OsNamestringNoOperating system name
OsVersionstringNoOperating system version
DeviceBrandstringNoDevice manufacturer brand (e.g., Samsung, Apple)
DeviceModelstringNoDevice model name
OperatorstringNoMobile network operator
DeviceTypestringNoDevice form factor (e.g., phone, tablet)
AppVersionstringNoHost application version
PersistentCodestringNoPersistent token used for long-term device identification
LocalestringNoDevice locale (e.g., en_US)
TimeZonestringNoDevice time zone identifier (e.g., Europe/Madrid)
TimeOffsetintNoUTC offset in minutes

Usage

Indigitall.Init(config,
    onIndigitallInitialized: (permissions, device) =>
    {
        Console.WriteLine($"Device ID: {device.DeviceId}");
        Console.WriteLine($"Push token: {device.PushToken}");
    },
    onNewUserRegistered: (device) =>
    {
        Console.WriteLine($"New user: {device.DeviceId}");
    },
    onErrorInitialized: (code, message, description) => { }
);

Customer

Module: sdk · Namespace: Com.Indigitall.Maui.Models · File: sdk.Maui/Models/INDMCustomer.cs

Represents a customer (end user) profile registered in the Indigitall platform. Used to link a device to a specific user identity via LogIn / LogOut operations.

PropertyTypeRequiredDescription
IdstringNoInternal Indigitall customer record identifier
CustomerIdstringYesExternal customer identifier provided by the integrating application
ApplicationIdstringNoIndigitall application identifier associated with this customer
CreatedAtstringNoISO 8601 timestamp of when the customer record was created
UpdatedAtstringNoISO 8601 timestamp of the last update to the customer record

Related models

  • INDMCustomerField — Represents a single key/value pair of custom metadata associated with a customer.
PropertyTypeDescription
CustomerFieldKeystringMetadata field key
CustomerFieldValuestringMetadata field value

InboxNotification

Module: push · Namespace: Com.Indigitall.Maui.Push

Represents a push notification stored in the user's inbox on the Indigitall platform. The inbox is a server-side archive of previously delivered notifications that can be retrieved and displayed in the app.

Note: The MAUI SDK does not define a dedicated INDMInboxNotification model class. Inbox retrieval is performed through the Inbox REST API using the URL configured in INDMConfiguration.UrlInboxApi. The response is a paginated list of push notification records with the same fields as the Push model.

INDMConfiguration inbox properties

PropertyTypeDescription
UrlInboxApistringBase URL of the Inbox API endpoint (e.g., https://device-api.indigitall.com/v1)

Inbox query parameters (used in API requests)

ParameterDescription
PARAMS_INBOX_EXTERNALIDFilter by external device/user ID
PARAMS_INBOX_PAGEPage number for pagination
PARAMS_INBOX_PAGE_SIZENumber of records per page
PARAMS_INBOX_DATE_FROMFilter notifications sent on or after this date
PARAMS_INBOX_DATE_TOFilter notifications sent on or before this date
PARAMS_INBOX_STATUSFilter by notification status (read / unread)

InApp

Module: inapp · Namespace: Com.Indigitall.Maui.InApp.Models · File: sdk.Maui.InApp/Models/INDMInApp.cs

Represents an in-app message configured in the Indigitall platform. In-app messages are rich content units displayed inside the application without requiring a push notification.

PropertyTypeRequiredDescription
InAppIdintYesUnique identifier of the in-app message
LastVersionIdintNoIdentifier of the latest published version of this in-app message
ShowOnceboolNoIf true, the message is displayed only once per device. Default: false
CacheTtldoubleNoTime-to-live in seconds for the cached in-app content
ExpiredDatestringNoISO 8601 expiry date after which the message will no longer be shown
CreationDatestringNoISO 8601 date when the in-app message was created
VersionintNoVersion number of the in-app message content
NamestringNoInternal name of the in-app message (for identification in the console)
PropertiesINDMInAppPropertiesNoDisplay and interaction properties of the in-app message
SchemaINDMInAppSchemaNoLayout schema defining dimensions and code of the template
InAppShowINDMInAppShowNoStatistics about how many times the message has been shown or clicked
FiltersINDMInAppFiltersNoTargeting filters controlling when and to whom the message is shown
CustomDataobjectNoArbitrary custom data associated with the in-app message

Related models

INDMInAppProperties — Display and interaction configuration for an in-app message.

PropertyTypeDescription
ActionINDMInAppActionAction executed when the user interacts with the message
ContentUrlstringURL of the HTML/web content to display inside the in-app
ShowTimeintAuto-dismiss delay in seconds (0 = no auto-dismiss)
NumberOfClicksintMaximum number of times the message can be clicked before being dismissed
NumberOfShowsintMaximum number of times the message can be shown
DismissForeverboolIf true, the message is permanently dismissed after the first interaction

INDMInAppAction — Defines the action executed when the user taps an in-app message.

PropertyTypeDescription
AppstringDeep-link URI to open within the application
UrlstringExternal URL to open in the browser
CallstringPhone number to dial
MarketstringApp store URL or package identifier to open
SharestringText content to share via the system share sheet
ActionIdintNumeric identifier of the predefined action

INDMInAppSchema — Layout dimensions of the in-app template.

PropertyTypeDescription
CodestringTemplate schema code
WidthintTemplate width in dp/pt
HeightintTemplate height in dp/pt

INDMInAppShow — Display statistics for an in-app message.

PropertyTypeDescription
TimesShowedintNumber of times the message has been displayed
TimesClickedintNumber of times the user has clicked/tapped the message
WasDismissedboolWhether the message has been dismissed by the user

INDMInAppFilters — Targeting filters for an in-app message.

PropertyTypeDescription
Platformsstring[]Platforms the message is targeted to (e.g., android, ios)
Areasint[]Geofence area IDs
AudienceobjectAudience segmentation criteria
TopicsINDMInAppFiltersTopicsTopic subscription-based targeting
ExternalAppsINDMExternallApp[]Linked external application filters
DeviceCodesstring[]Explicit list of device codes to target
DeviceCodesActiveboolWhether device code filtering is active
DeviceTypesstring[]Device types to target (e.g., phone, tablet)
BrowserTypesstring[]Browser types to target (web only)
ActivePushDevicesboolIf true, only targets devices with active push notifications

LiveActivity

Module: sdk · Namespace: Com.Indigitall.Maui.Models · File: sdk.Maui/Models/INDMLiveActivity.cs

Represents a Live Activity session registered in the Indigitall platform. Live Activities (iOS 16.1+) display real-time updates on the Lock Screen and Dynamic Island. On Android, the equivalent is a persistent foreground notification updated via a dedicated topic.

PropertyTypeRequiredDescription
LiveActivityIdstring?YesUnique identifier of the Live Activity record in Indigitall
LiveActivityExternalIdstring?NoExternal identifier provided by the host application to correlate with its own data
ApplicationIdintNoIndigitall application identifier
Statusstring?NoCurrent status of the Live Activity (e.g., active, ended)
iOSChannelIdstring?NoiOS push-to-start channel identifier used to update the Live Activity
AndroidTopicIdstring?NoAndroid FCM topic identifier used to push updates to the equivalent activity
CreatedAtstring?NoISO 8601 timestamp of when the Live Activity was registered
UpdatedAtstring?NoISO 8601 timestamp of the last update

Related models

INDMLADevice — Lightweight device representation used exclusively during Live Activity registration. Contains the same core device fields as INDMDevice but without push-specific properties like PushToken and PersistentCode.

PropertyTypeDescription
DeviceIdstringDevice identifier
EnabledboolWhether the device is enabled. Default: true
PlatformstringPlatform name
VersionstringSDK version
ProductNamestringSDK product name
ProductVersionstringSDK product version
OsNamestringOperating system name
OsVersionstringOperating system version
DeviceBrandstringDevice manufacturer
DeviceModelstringDevice model
DeviceTypestringDevice form factor
AppVersionstringHost application version
LocalestringDevice locale
TimeZonestringDevice time zone
TimeOffsetintUTC offset in minutes

Topic

Module: push · Namespace: Com.Indigitall.Maui.Push.Models · File: sdk.Maui.Push/Models/INDMTopic.cs

Represents a notification topic (segment) on the Indigitall platform. Topics allow users to subscribe or unsubscribe from specific notification categories. Devices that are subscribed to a topic receive all campaigns targeting that topic.

PropertyTypeRequiredDescription
CodestringYesUnique code identifying the topic
NamestringNoHuman-readable display name of the topic
VisibleboolNoIf true, the topic is visible to the end user (e.g., in a preferences screen). Default: false
SubscribedboolNoIndicates whether the current device is subscribed to this topic. Default: false
ParentCodestringNoCode of the parent topic if this is a sub-topic; null for top-level topics
ChannelINDMChannel (enum)NoNotification channel this topic belongs to

INDMChannel enum

ValueDescription
PushStandard push notification channel
InAppIn-app message channel
ChatChat/messaging channel

Usage

// Get the list of available topics
Indigitall.GetTopics(
    onSuccess: (topics) =>
    {
        foreach (var topic in topics)
        {
            Console.WriteLine($"{topic.Name} [{topic.Code}] – subscribed: {topic.Subscribed}");
        }
    },
    onFail: (code, message) => { }
);

// Subscribe to a topic
Indigitall.SubscribeToTopics(new[] { "sports", "news" }, onSuccess, onFail);

// Unsubscribe from a topic
Indigitall.UnsubscribeFromTopics(new[] { "sports" }, onSuccess, onFail);