Identify your attendees using personalized links
If you need to identify your attendees in MeetingPulse programmatically, then personalized links are a convenient solution. There are two ways to do this.
Required
Client identifier and secret key
Issued by MeetingPulse upon request
Customer Data
For each attendee, provide
Name
Email (optional)
Setup
Steps to create personalized links for attendees to join your meeting.
Note: the keys shown here are just examples.
1. Generate the payload
Compose a JSON with the data you'll be passing:
{
"client": "mycompanyname",
"id": "100500",
"name": "John Doe",
"email": "doe@example.com",
"signature": ""
}
Email is a mandatory field. Please set it to an empty string if you don’t want to send the email. The email passed in the payload will be included in several CSV exports, as will the id, as “External ID”.
2. Get the signature for the payload
Concatenate the customer’s secret with all the fields of the payload (id, name, email). For the above, given an example secret key of "mysecret", it would be:
mysecret100500John Doedoe@example.com
Hash that string via SHA-256, make sure it's lowercase hex notation, and you'll get:
907cf4666f4690888f48d7b04844138d170aad80df57a63f59572294fc5f6820
Add that as a "signature" parameter to your payload.
3. Prepare the meeting
You'll need to set up the related meeting in the application.
Important: If you have access to the "Anonymize" meeting option, make sure it is disabled, otherwise the names you pass won't be associated with the participants at all.
4. Add the payload to the url
Here’s an example meeting URL you want to open or embed on your page:
https://app.meet.ps/attendee/my-embedded-meeting
Have the payload base-64 encoded and URL-escaped, turning it into a sequence:
ewogICAgImNsaWVudCI6ICJteWNvbXBhbnluYW1lIiwKICAgICJpZCI6ICIxMDA1MDAiLAogICAgIm5hbWUiOiAiSm9obiBEb2UiLAogICAgImVtYWlsIjogImRvZUBleGFtcGxlLmNvbSIsCiAgICAic2lnbmF0dXJlIjogIjkwN2NmNDY2NmY0NjkwODg4ZjQ4ZDdiMDQ4NDQxMzhkMTcwYWFkODBkZjU3YTYzZjU5NTcyMjk0ZmM1ZjY4MjAiCn0K
Note: the string above is generated for the example payload respecting the whitespaces used in this document; your string may differ.
Take that sequence and append it as a query string parameter "i" to the URL. This creates a usable URL:
https://app.meet.ps/attendee/my-embedded-meeting?i=ewogICAgImNsaWVudCI6ICJteWNvbXBhbnluYW1lIiwKICAgICJpZCI6ICIxMDA1MDAiLAogICAgIm5hbWUiOiAiSm9obiBEb2UiLAogICAgImVtYWlsIjogImRvZUBleGFtcGxlLmNvbSIsCiAgICAic2lnbmF0dXJlIjogIjkwN2NmNDY2NmY0NjkwODg4ZjQ4ZDdiMDQ4NDQxMzhkMTcwYWFkODBkZjU3YTYzZjU5NTcyMjk0ZmM1ZjY4MjAiCn0K
Enjoy!
To confirm your name in attendee view, look to the Info slide. You can also submit questions or comments in Q&A. You’ll be able to see the external ID passed in the CSV exports.
Signing-in already invited attendees
This is an alternative to the default method of providing attendee names through URL. You can lock the meeting with custom codes and then create a token with the access codes.
Prerequisites
Access to the database containing your audience information. It's highly advisable that your user entries contain password-like unique values for each item. If that's not an option, a user identifier will also do.
Setup
The core assumption of this setup is that your users each have a unique key, preferably something random, but a user identifier will also do in its place.
Generate and upload the CSV data file
Follow these instructions to generate a CSV file listing your intended audience. Keep a column called "code" which would hold a password-like unique value for each of your attendees as mentioned earlier. Make sure to add all the extra data you want (custom fields, schedule configuration etc).
Double-check to ensure that the meeting would require attendees to provide their personal codes to enter (through Settings > Access and Identity > Require Custom Access Code).
Generate the payload
The next steps are similar to the earlier setup steps to generate access URLs. Key differences are:
You need to provide the name of your meeting in the payload;
The attendee ID in the payload uses the value you've previously referenced in the "code" column in the data CSV.
Your example payload in this case before serialization would look like this:
{
"client": "mycompanyname",
"id": "100500",
"meeting": "my-code-join-example-mtg",
"signature": "0903b0f2ed40ca6f258ca6550d51cf4a5c06ff38bd5c80628868c71b0fd6a1c6"
}
No usual email or name is required here - this data is to be passed through the initial attendee CSV.
The signature above gets computed the same way as in the default case - by concatenating your client secret, the attendee code, and the meeting name, then generating a SHA256 hash out of it. The example uses the secret of mysecret.
Add the payload to the URL (same as above).
Here’s an example meeting URL you want to open or embed on your page:
https://app.meet.ps/attendee/my-embedded-meeting
Have the payload base-64 encoded and URL-escaped, turning it into a sequence:
ewogICAgImNsaWVudCI6ICJteWNvbXBhbnluYW1lIiwKICAgICJpZCI6ICIxMDA1MDAiLAogICAgIm5hbWUiOiAiSm9obiBEb2UiLAogICAgImVtYWlsIjogImRvZUBleGFtcGxlLmNvbSIsCiAgICAic2lnbmF0dXJlIjogIjkwN2NmNDY2NmY0NjkwODg4ZjQ4ZDdiMDQ4NDQxMzhkMTcwYWFkODBkZjU3YTYzZjU5NTcyMjk0ZmM1ZjY4MjAiCn0K
Note: the string above is generated for the example payload respecting the whitespaces used in this document; your string may differ.
Take that sequence and append it as a query string parameter "i" to the URL. This creates a usable URL:
https://app.meet.ps/attendee/my-embedded-meeting?i=ewogICAgImNsaWVudCI6ICJteWNvbXBhbnluYW1lIiwKICAgICJpZCI6ICIxMDA1MDAiLAogICAgIm5hbWUiOiAiSm9obiBEb2UiLAogICAgImVtYWlsIjogImRvZUBleGFtcGxlLmNvbSIsCiAgICAic2lnbmF0dXJlIjogIjkwN2NmNDY2NmY0NjkwODg4ZjQ4ZDdiMDQ4NDQxMzhkMTcwYWFkODBkZjU3YTYzZjU5NTcyMjk0ZmM1ZjY4MjAiCn0K
Examples
Passing attendee names and emails
Client: trial
Secret:
Fr2Df8kQ9v5Sqg3G (Example)
Payload:
{
"client": "trial",
"id": "1234567",
"name": "Emily Smith",
"email": "emily@meetingpulse.net",
"signature": ""
}
Signature is: secretIdNameEmail
Fr2Df8kQ9v5Sqg3G1234567Emily Smithemily@meetingpulse.net
Hash with SHA-256
06ef66a5277d4b1d8c467ea7d1807b1c3695d7c84447152de5d05d9f7f3be15b
Put the signature in the Payload.
Complete payload:
{
"client": "trial",
"id": "1234567",
"name": "Emily Smith",
"email": "emily@meetingpulse.net",
"signature": "06ef66a5277d4b1d8c467ea7d1807b1c3695d7c84447152de5d05d9f7f3be15b"
}
ewogICAgImNsaWVudCI6ICJ0cmlhbCIsCiAgICAiaWQiOiAiMTIzNDU2NyIsCiAgICAibmFtZSI6ICJFbWlseSBTbWl0aCIsCiAgICAiZW1haWwiOiAiZW1pbHlAbWVldGluZ3B1bHNlLm5ldCIsCiAgICAic2lnbmF0dXJlIjogIjA2ZWY2NmE1Mjc3ZDRiMWQ4YzQ2N2VhN2QxODA3YjFjMzY5NWQ3Yzg0NDQ3MTUyZGU1ZDA1ZDlmN2YzYmUxNWIiCn0
Add to meeting link after ?i=
https://meet.ps/urltraining?i=
ewogICAgImNsaWVudCI6ICJ0cmlhbCIsCiAgICAiaWQiOiAiMTIzNDU2NyIsCiAgICAibmFtZSI6ICJFbWlseSBTbWl0aCIsCiAgICAiZW1haWwiOiAiZW1pbHlAbWVldGluZ3B1bHNlLm5ldCIsCiAgICAic2lnbmF0dXJlIjogIjA2ZWY2NmE1Mjc3ZDRiMWQ4YzQ2N2VhN2QxODA3YjFjMzY5NWQ3Yzg0NDQ3MTUyZGU1ZDA1ZDlmN2YzYmUxNWIiCn0
Passing Attendee Codes
Have a meeting named, say, url-meeting. Set it to require personal codes, have anonymization disabled, enable the Info slide.
Create a CSV file with attendee data, making sure you manually provide the personal code through the "code" column. Say, one of the attendees there has a code of "4242" and has some name you can remember and recognize later.
Now, use the google doc file and go through the boring steps. Compose your payload:
{
"client": "meetingpulse",
"id": "4242",
"meeting": "url-meeting"
}
The secret for the "meetingpulse" client in this example is: 4GvXisPMqyKF3Ve4. Concatenate the secret, attendee code id, and meeting name:
4GvXisPMqyKF3Ve44242url-meeting
Hash this using SHA256 (use an online tool):
22a7890b1dc5c0a2afc02f03080a662dce6680f43455daca8b9dc89ba32bc6ad
Put it back into the payload:
{
"client": "meetingpulse",
"id": "4242",
"meeting": "url-meeting",
"signature": "22a7890b1dc5c0a2afc02f03080a662dce6680f43455daca8b9dc89ba32bc6ad"
}
Base64-encode and URL-escape the above. To do this manually use an online tool to encode the payload (copy-paste the whole block above, including brackets) and manually replace any equal signs (=) with escaped values (%3D):
eyANCiJjbGllbnQiOiAibWVldGluZ3B1bHNlIiwgDQoiaWQiOiAiNDI0MiIsIA0KIm1lZXRpbmciOiAiYXV0b2pvaW4td2l0aC1jb2RlcyIsDQoic2lnbmF0dXJlIjogIjIyYTc4OTBiMWRjNWMwYTJhZmMwMmYwMzA4MGE2NjJkY2U2NjgwZjQzNDU1ZGFjYThiOWRjODliYTMyYmM2YWQiDQp9DQo%3D
Put that token in the attendee URL by appending an ?i=<token> suffix at the end:
https://app.meet.ps/attendee/url-meeting?i=eyANCiJjbGllbnQiOiAibWVldGluZ3B1bHNlIiwgDQoiaWQiOiAiNDI0MiIsIA0KIm1lZXRpbmciOiAiYXV0b2pvaW4td2l0aC1jb2RlcyIsDQoic2lnbmF0dXJlIjogIjIyYTc4OTBiMWRjNWMwYTJhZmMwMmYwMzA4MGE2NjJkY2U2NjgwZjQzNDU1ZGFjYThiOWRjODliYTMyYmM2YWQiDQp9DQo%3D
Join the meeting, notice no code was being asked, check the Info/About slide to validate that it shows the invited attendee's name there.