Hello, I have a custom action that displays the Intercom messenger and I want to pass some fields from the user document as custom attributes in Intercom (for example "firstName" & userRole). I have tried with app state to generate the list but it does not work due to formatting.
Data values must be sent as JSON strings, numbers or booleans (true or false). We canβt accept object, nested hashes and array data formats.
Anyone with a solution?
Custom action:
import 'package:intercom_flutter/intercom_flutter.dart';
Future initIntercom(
String userEmail,
String? username,
String? userId,
List<String>? attributes,
) async {
// display intercom messenger
await Intercom.instance.initialize('APP ID',
iosApiKey: 'API KEY',
androidApiKey: 'API KEY');
Intercom.instance.loginIdentifiedUser(email: userEmail);
Intercom.instance.updateUser(
email: userEmail,
name: username,
userId: userId,
customAttributes: attributes != null
? Map.fromIterable(attributes,
key: (attribute) => attribute, value: (_) => true)
: null,
);
displayMessenger() {
FFAppState().update(() {
FFAppState().intercomStatus = true;
});
return Intercom.instance.displayMessenger();
}
displayMessenger();
}