{"_id":"55781fe45129590d003ff51b","user":"54aa7f3f9bb00c0b00cb899b","category":{"_id":"55781fe35129590d003ff4fb","version":"55781fe25129590d003ff4f7","__v":11,"pages":["55781fe45129590d003ff517","55781fe45129590d003ff518","55781fe45129590d003ff519","55781fe45129590d003ff51a","55781fe45129590d003ff51b","55781fe45129590d003ff51c","55781fe45129590d003ff51d","55781fe45129590d003ff51e","55781fe45129590d003ff51f","55781fe45129590d003ff520","55781fe45129590d003ff521","55781fe45129590d003ff522","5579ab5fc7fb3f2100096fad","55f7de1660cc850d008a7a22","55f7e1fbe32e9b0d00a2d4d0","561f72bacec1a50d00979598","561f764f61c0521700acc428","563337539c607719001b85dd","564318f1f49bfa0d002f5566","564f03454f000617007bd670","565ee80a23fd5f0d00a129f9","56793cd73473bc0d008e141b"],"project":"54aa7f773b56130b0056c86e","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T12:43:51.897Z","from_sync":false,"order":3,"slug":"ios-sdk","title":"iOS SDK"},"githubsync":"","parentDoc":null,"project":"54aa7f773b56130b0056c86e","version":{"_id":"55781fe25129590d003ff4f7","project":"54aa7f773b56130b0056c86e","forked_from":"54aa7f773b56130b0056c871","__v":6,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z","categories":["55781fe35129590d003ff4f8","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","55781fe35129590d003ff4fb","55781fe35129590d003ff4fc","55781fe35129590d003ff4fd","55781fe35129590d003ff4fe","564bbc7e8841060d00abb2ee","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","582318b23b961a0f009516a1","594a848c9f4771001a43c959"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Developers","version_clean":"2.0.0","version":"2.0"},"__v":9,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-05-13T14:13:49.504Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":5,"body":"[block:callout]\n{\n  \"type\": \"success\",\n  \"title\": \"\",\n  \"body\": \"Please make sure that you're familiar with the [Running the Pulsate SDK](https://pulsate.readme.io/v2.0/docs/running-the-pulsate-sdk) tutorial.\"\n}\n[/block]\nPulsate collects all of its data anonymously unless you explicitly decide to pass the email address or first and last name of that customer to Pulsate. To get the best out of Pulsate, we highly recommend that you pass email address / name if they are available within your mobile application.\n\nIf you pass an email address to Pulsate that is used for a customer/user's Social Media Account/Profile, it will attempt to fetch and store additional parameters from various social networks, that can help you understand your customers better and greatly enrich your Pulsate experience. It is vital that you have your customers'/users' permission to fetch and store this data and of course you can explain the benefits you can bring to them if they grant permission.\n\nTo pass a customers first name, last name and email address simply invoke the *updateFirstName*, *updateLastName* or *updateEmail* method on the *PULPulsateManager* object:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[pulsateManager updateFirstName::::at:::\\\"John\\\"]\\n[pulsateManager updateLastName:@\\\"Smith\\\"];\\n[pulsateManager updateEmail:@\\\"p@pulsatehq.com\\\"]\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pulsateManager.updateFirstName(\\\"John\\\")\\npulsateManager.updateLastName(\\\"Smith\\\")\\npulsateManager.updateEmail(\\\"p@pulsatehq.com\\\")\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nThe 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.\n\n\nAlways remember to send user data only after a user session has already started. Developers can use the *startPulsateSession* and  *startPulsateSessionForAlias* callbacks to do that. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[manager startPulsateSession:^(BOOL success, NSError * _Nullable error) {\\n  if (success)\\n  {\\n    [pulsateManager updateFirstName:@\\\"John\\\"]\\n    [pulsateManager updateLastName:@\\\"Smith\\\"];\\n    [pulsateManager updateEmail:@\\\"p@pulsatehq.com\\\"]\\n  }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[manager startPulsateSessionForAlias:a withListener:^(BOOL success, NSError * _Nullable error) {\\n  if (success)\\n  {\\n\\t\\t[pulsateManager updateFirstName:@\\\"John\\\"]\\n    [pulsateManager updateLastName:@\\\"Smith\\\"];\\n    [pulsateManager updateEmail:@\\\"p@pulsatehq.com\\\"]\\n  }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"passing-user-information-to-pulsate","type":"basic","title":"Passing Customer Names and Emails to Pulsate"}

Passing Customer Names and Emails to Pulsate


[block:callout] { "type": "success", "title": "", "body": "Please make sure that you're familiar with the [Running the Pulsate SDK](https://pulsate.readme.io/v2.0/docs/running-the-pulsate-sdk) tutorial." } [/block] Pulsate collects all of its data anonymously unless you explicitly decide to pass the email address or first and last name of that customer to Pulsate. To get the best out of Pulsate, we highly recommend that you pass email address / name if they are available within your mobile application. If you pass an email address to Pulsate that is used for a customer/user's Social Media Account/Profile, it will attempt to fetch and store additional parameters from various social networks, that can help you understand your customers better and greatly enrich your Pulsate experience. It is vital that you have your customers'/users' permission to fetch and store this data and of course you can explain the benefits you can bring to them if they grant permission. To pass a customers first name, last name and email address simply invoke the *updateFirstName*, *updateLastName* or *updateEmail* method on the *PULPulsateManager* object: [block:code] { "codes": [ { "code": "[pulsateManager updateFirstName:@\"John\"]\n[pulsateManager updateLastName:@\"Smith\"];\n[pulsateManager updateEmail:@\"p@pulsatehq.com\"]", "language": "objectivec" } ] } [/block] [block:code] { "codes": [ { "code": "pulsateManager.updateFirstName(\"John\")\npulsateManager.updateLastName(\"Smith\")\npulsateManager.updateEmail(\"p@pulsatehq.com\")", "language": "swift" } ] } [/block] 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. [block:code] { "codes": [ { "code": "[manager startPulsateSession:^(BOOL success, NSError * _Nullable error) {\n if (success)\n {\n [pulsateManager updateFirstName:@\"John\"]\n [pulsateManager updateLastName:@\"Smith\"];\n [pulsateManager updateEmail:@\"p@pulsatehq.com\"]\n }\n}];", "language": "objectivec" } ] } [/block] [block:code] { "codes": [ { "code": "[manager startPulsateSessionForAlias:a withListener:^(BOOL success, NSError * _Nullable error) {\n if (success)\n {\n\t\t[pulsateManager updateFirstName:@\"John\"]\n [pulsateManager updateLastName:@\"Smith\"];\n [pulsateManager updateEmail:@\"p@pulsatehq.com\"]\n }\n}];", "language": "objectivec" } ] } [/block]