Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

New modelsExisting models (modified)
EmailMembershipInvitationEmailMembershipInvitationIdEmailMembershipInvitationsResponseEmailValidationSignedTokenInviteeVerificationSignedTokenAccountSetupInfoNewUser

emailAddress

teamId

createdBy

id

emailMembershipInvitationId


results - ARRAY<EmailMembershipInvitation>

nextPageToken

email

timestamp

hmac

inviteeId

emailMembershipInvitationId

timestamp

hmac

firstName

lastName

emailValidationToken

emailValidationSignedToken

username

password

email

lastName

firstName

userName

New services to implement or modify

New services

DescriptionIntended UserURIMethodRequest ParametersRequest BodyResponse Body

Create an email membership invitation.

Send an email containing an invitation link to the invitee. The link will contain a serialized EmailMembershipInvitationId.

team administrator/emailMembershipInvitationPOSTportalEndpointEmailMembershipInvitationEmailMembershipInvitation
Retrieve a pending email membership invitation. The emailAddress field of the response body object will be null. authenticated user/emailMembershipInvitation/{id}GET----EmailMembershipInvitation
Retrieve all the pending email membership invitations from a Team.team administrator/team/{id}/emailMembershipInvitationsGETnextPageToken--EmailMembershipInvitationsResponse
Delete a pending email membership invitation.team administrator/emailMembershipInvitation/{id}DELETE------

Start the process of creating a new account, similarly to POST /account/emailValidation, but also the process of associating a membership invitation to the new account.

Send a 'validation email' message to the provided email address. The email will contain a link to complete the registration process.

The link will contain a serialized EmailValidationSignedToken (used for new account registration) and a serialized EmailMembershipInvitationId (used to create membership invitation).

Intended to be used in conjunction with POST /account.

public

/emailMembershipInvitation/{id}/account/emailValidation

(or extend the existing /account/emailValidation service with an optional parameter emailMembershipInvitationId)

POSTportalEndpointNewUser--

Verify whether the authenticated user is the invitee of the indicated EmailMembershipInvitation.

If they are, the response body will contain an InviteeVerificationSignedToken.

If they are not, the response body will be null and an identity verification email containing a link will be sent to the address associated with the indicated EmailMembershipInvitation. The link will contain a serialized InviteeVerificationSignedToken.

authenticated user/emailMembershipInvitation/{id}/verificationPOSTportalEndpoint--InviteeVerificationSignedToken

Create a MembershipInvitation. The invitation is created from the team associated with the given email membership invitation to the currently authenticated user.

A valid InviteeVerificationSignedToken must have an inviteeId equal to the id of the authenticated user and an emailInvitationId equal to the id in the URI.

Doesn't send any email notifications.

authenticated user/emailMembershipInvitation/{id}/membershipInvitationPOST--


InviteeVerificationSignedTokenMembershipInvtnSubmission

Related services: POST /accountPOST /session

Statistics to track

...

  • Which users create invitations, when they create them, and from what teams they create them.
    • These statistics are captured by the EmailMembershipInvitation model, which is stored in the database.

...

  • How many invitations are accepted and when they are accepted.
    • There is no easy way to track this.

...

  • How many invitees choose to register a new account and how many choose to sign in.
    • We know the total number of membership invitations created from the number of POST /emailMembershipInvitation/{id}/membershipInvitation requests.
    • We know the total number of invitees who chose to register a new account from the number of POST /emailMembershipInvitation/{id}/account/emailValidation requests.
    • We can derive the total number of invitees who chose to sign in with an existing account from the above two numbers.

Implementation outline

Phase 1

...