{"_id":"55781fe45129590d003ff511","user":"54aa7f3f9bb00c0b00cb899b","category":{"_id":"55781fe35129590d003ff4fc","pages":["55781fe45129590d003ff50d","55781fe45129590d003ff50e","55781fe45129590d003ff50f","55781fe45129590d003ff510","55781fe45129590d003ff511","55781fe45129590d003ff512","55781fe45129590d003ff513","55781fe45129590d003ff514","55781fe45129590d003ff515","55781fe45129590d003ff516","55f692b4fe4cce21005c78b0","55f7e91e60cc850d008a7a45","56333cab9c607719001b85e4","564462ed9ce94c0d00068ce9","564f54fa48a1df1700836653","565ee9e7413e06170093dde0","5661a8fdb401c70d00dde6fa","5671348860c8e70d006c96a1","568ce9707d3bf02300aa7734"],"version":"55781fe25129590d003ff4f7","__v":10,"project":"54aa7f773b56130b0056c86e","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T12:44:00.338Z","from_sync":false,"order":4,"slug":"android-sdk","title":"Android SDK"},"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"},"parentDoc":null,"project":"54aa7f773b56130b0056c86e","githubsync":"","__v":6,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-01-05T14:11:32.102Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"body":"[block:callout]\n{\n  \"type\": \"success\",\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-android) 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 *PulsateManager* object:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.updateFirstName(\\\"John\\\");\\nmanager.updateLastName(\\\"Smith\\\");\\nmanager.updateEmail(\\\"john.smith:::at:::gmail.com\\\");\",\n      \"language\": \"java\"\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[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.updateFirstName(\\\"John\\\");\\nmanager.updateLastName(\\\"Smith\\\");\\nmanager.updateEmail(\\\"john.smith@gmail.com\\\");\\nmanager.forceAttributeSync();\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nAlways remember to send user data only after a user session has already started. Developers can use the *IPulsateRequestListener onSucess()* callback to do that. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.startPulsateSession(new IPulsateRequestListener() {\\n  @Override\\n  public void onSucess() {\\n    manager.updateFirstName(\\\"John\\\");\\n    manager.updateLastName(\\\"Smith\\\");\\n    manager.updateEmail(\\\"john.smith@gmail.com\\\");\\n    manager.forceAttributeSync();\\n  }\\n\\n  @Override\\n  public void onError(Throwable e) {\\n    e.printStackTrace();  \\n  }\\n});\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.startPulsateSessionForAlias(\\\"JohnSmithAlias\\\", new IPulsateRequestListener() {\\n  @Override\\n  public void onSucess() {\\n    manager.updateFirstName(\\\"John\\\");\\n    manager.updateLastName(\\\"Smith\\\");\\n    manager.updateEmail(\\\"john.smith@gmail.com\\\");\\n    manager.forceAttributeSync();\\n  }\\n\\n  @Override\\n  public void onError(Throwable e) {\\n    e.printStackTrace();  \\n  }\\n});\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"passing-email-address-or-name","type":"basic","title":"Passing Customer Names and Email Addresses"}

Passing Customer Names and Email Addresses


[block:callout] { "type": "success", "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-android) 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 *PulsateManager* object: [block:code] { "codes": [ { "code": "manager.updateFirstName(\"John\");\nmanager.updateLastName(\"Smith\");\nmanager.updateEmail(\"john.smith@gmail.com\");", "language": "java" } ] } [/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. [block:code] { "codes": [ { "code": "manager.updateFirstName(\"John\");\nmanager.updateLastName(\"Smith\");\nmanager.updateEmail(\"john.smith@gmail.com\");\nmanager.forceAttributeSync();", "language": "java" } ] } [/block] Always remember to send user data only after a user session has already started. Developers can use the *IPulsateRequestListener onSucess()* callback to do that. [block:code] { "codes": [ { "code": "manager.startPulsateSession(new IPulsateRequestListener() {\n @Override\n public void onSucess() {\n manager.updateFirstName(\"John\");\n manager.updateLastName(\"Smith\");\n manager.updateEmail(\"john.smith@gmail.com\");\n manager.forceAttributeSync();\n }\n\n @Override\n public void onError(Throwable e) {\n e.printStackTrace(); \n }\n});", "language": "java" } ] } [/block] [block:code] { "codes": [ { "code": "manager.startPulsateSessionForAlias(\"JohnSmithAlias\", new IPulsateRequestListener() {\n @Override\n public void onSucess() {\n manager.updateFirstName(\"John\");\n manager.updateLastName(\"Smith\");\n manager.updateEmail(\"john.smith@gmail.com\");\n manager.forceAttributeSync();\n }\n\n @Override\n public void onError(Throwable e) {\n e.printStackTrace(); \n }\n});", "language": "java" } ] } [/block]