👍

Please make sure that you're familiar with the Running the Pulsate SDK tutorial.

Pulsate collects all data anonymously unless you explicitly decide to pass personal data such as an email address or the first and last name of a customer to Pulsate. It is vital that you have your customers'/users' permission to send any personal data to Pulsate including their full name and/ or email address. It is also important that you are aware of all regulations related to customer data and privacy including GDPR. More info on Pulsate's GDPR and privacy policies can be found here.

First name is particularly useful because it can be used to dynamically personalize the user's experience. Many Pulsate customers send us their user's first name but not other personal data such as last name or email.

To pass a customers first name, last name and email address simply invoke the updateFirstName, updateLastName, updateEmail or updatePhoneNumber method on the PULPulsateManager object:

[pulsateManager updateFirstName:@"John"];
[pulsateManager updateLastName:@"Smith"];
[pulsateManager updateEmail:@"[email protected]"];
[pulsateManager updatePhoneNumber:@"+1408XXXXXXX"];
pulsateManager.updateFirstName("John")
pulsateManager.updateLastName("Smith")
pulsateManager.updateEmail("[email protected]")
pulsateManager.updatePhoneNumber("+1408XXXXXXX")

The data will be stored locally and sent to the Pulsate server the next time synchronization occurs. Developers can force an synchronization by calling the forceAttributeSync method.

Always remember to send user data only after a user session has already started. Developers can use the startPulsateSession and startPulsateSessionForAlias callbacks to do that.

[manager startPulsateSession:^(BOOL success, NSError * _Nullable error) {
  if (success)
  {
    [pulsateManager updateFirstName:@"John"];
    [pulsateManager updateLastName:@"Smith"];
    [pulsateManager updateEmail:@"[email protected]"];
    [pulsateManager updatePhoneNumber:@"+1408XXXXXXX"];
  }
}];
[manager startPulsateSessionForAlias:a withListener:^(BOOL success, NSError * _Nullable error) {
  if (success)
  {
		[pulsateManager updateFirstName:@"John"];
    [pulsateManager updateLastName:@"Smith"];
    [pulsateManager updateEmail:@"[email protected]"];
    [pulsateManager updatePhoneNumber:@"+1408XXXXXXX"];
  }
}];