Skip to main content

Zixflow Core

// Initialize SDK
await Zixflow.initialize(config: ZixflowConfig);

// Get instance
Zixflow.instance

// Identify user
Zixflow.instance.identify({
  required String userId,
  Map<String, dynamic>? traits,
});

// Track event
Zixflow.instance.track({
  required String name,
  Map<String, dynamic>? properties,
  int? timestamp,
});

// Track screen
Zixflow.instance.screen({
  required String title,
  Map<String, dynamic>? properties,
});

// Set profile attributes
Zixflow.instance.setProfileAttributes({
  required Map<String, dynamic> attributes,
});

// Set device attributes
Zixflow.instance.setDeviceAttributes({
  required Map<String, dynamic> attributes,
});

// Clear user identification
Zixflow.instance.clearIdentify();

// Register device token
Zixflow.instance.registerDeviceToken({
  required String deviceToken,
});

ZixflowConfig

ZixflowConfig({
  required String apiKey,
  LogLevel? logLevel,
  bool? autoTrackDeviceAttributes,
  bool? trackApplicationLifecycleEvents,
  ScreenView? screenViewUse,
  String? apiHost,
  String? cdnHost,
  int? flushAt,
  int? flushInterval,
  InAppConfig? inAppConfig,
  PushConfig? pushConfig,
  LocationConfig? locationConfig,
});

In-App Messaging

// Subscribe to events
Zixflow.inAppMessaging.subscribeToEventsListener(handler);

// Inbox management
final inbox = Zixflow.inAppMessaging.inbox;
await inbox.getMessages();
inbox.messages().listen((messages) { /* ... */ });
inbox.markMessageOpened(message);
inbox.markMessageUnopened(message);
inbox.deleteMessage(message);
inbox.openMessage(message);

Location

// Track location
Zixflow.location.trackLocation({
  required double latitude,
  required double longitude,
});