Configure It Yourself
Use this page to build the Wayfinder setup manually instead of importing the declarative bundle from Try It Out. Pick this path when you want to see exactly what gets created, adapt the setup to your own project, or learn the moving parts step by step.
The first section is the shared foundation — required regardless of which use cases you plan to exercise. The remaining three are independent and can be applied in any order.
- Set Up the Foundation — shared resources every walkthrough builds on.
- Build the Registration Flow — needed for Self Sign-Up.
- Build the Account Recovery Flow — needed for Account Recovery.
- Set up Internal User Onboarding — needed for Onboard Internal Users.
Set Up the Foundation
These resources are shared by every B2C walkthrough.
-
Create the
Customeruser type.Navigate to User Types → Create User Type. Define the schema:
Attribute Type Properties usernamestring Required, unique emailstring Required, unique passwordstring Credential given_namestring Optional family_namestring Optional substring Optional See User Types.
-
Create the
booking-apiresource server.Resource servers are managed through the Resource Management API. Create the resource server, the
bookingresource, and three actions in one call:curl -k -X POST https://localhost:8090/resource-servers \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Booking API",
"identifier": "booking-api",
"delimiter": ":",
"resources": [
{
"name": "Booking",
"handle": "booking",
"actions": [
{ "name": "Read", "handle": "read" },
{ "name": "Create", "handle": "create" },
{ "name": "Cancel", "handle": "cancel" }
]
}
]
}'This generates three permissions:
booking:read,booking:create, andbooking:cancel.See Resource Servers.
-
Create the
Travelerrole.Roles and their permissions are managed through the Role Management API. Create the role with the three
booking:*permissions in one call. Replace<default-ou-id>with the ID of your default organization unit (look it up viaGET /organization-units).curl -k -X POST https://localhost:8090/roles \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Traveler",
"description": "Consumer role with full booking permissions",
"ouId": "<default-ou-id>",
"permissions": [
{
"resourceServerId": "booking-api",
"permissions": ["booking:read", "booking:create", "booking:cancel"]
}
]
}'See Authorization.
-
Register the
WAYFINDERapplication.Navigate to Applications → Add Application and choose Browser App as the type. Configure:
Setting Value Redirect URI http://localhost:5173Allowed grants authorization_codePKCE Required Allowed user types CustomerSee Manage Applications.
-
Create John Doe as a
Customer.Navigate to Users → Add User. Select
Customeras the user type and click Create User. Fill in the schema attributes (username: john.doe,email: john.doe@example.com, password:john.doe) and complete the user creation.Navigate to Roles → open the
Travelerrole → Assignments tab. Click Add and select John to assign the role.See Manage Users.
Build the Registration Flow
The registration flow drives Self Sign-Up. It:
- Resolves the user type (prompts the new user to pick one if the application allows multiple).
- Prompts for username and password.
- Runs basic-auth and provisioning, with
properties.assignRoleset to attach theTravelerrole automatically. - Prompts for any remaining required schema attributes (rendered dynamically from the user type).
- Returns an auth assertion so the new user lands signed in.
-
Save the JSON below as
wayfinder-registration-flow.jsonand POST it to the flows API:curl -k -X POST https://localhost:8090/flows \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @wayfinder-registration-flow.jsonwayfinder-registration-flow.json
{
"handle": "wayfinder-registration-flow",
"name": "Wayfinder Registration Flow",
"flowType": "REGISTRATION",
"nodes": [
{ "id": "start", "type": "START", "onSuccess": "user_type_resolver" },
{
"id": "user_type_resolver",
"type": "TASK_EXECUTION",
"executor": { "name": "UserTypeResolver" },
"onSuccess": "prompt_credentials",
"onIncomplete": "prompt_usertype"
},
{
"id": "prompt_usertype",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "heading_usertype", "label": "Choose your account type", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_usertype",
"components": [
{ "type": "SELECT", "id": "usertype_input", "ref": "userType", "label": "Account type", "placeholder": "Select an account type", "required": true, "options": [] },
{ "type": "ACTION", "id": "action_usertype", "label": "Continue", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "usertype_input", "identifier": "userType", "type": "SELECT", "required": true } ],
"action": { "ref": "action_usertype", "nextNode": "user_type_resolver" }
}
]
},
{
"id": "prompt_credentials",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "heading_credentials", "label": "Create your account", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_credentials",
"components": [
{ "type": "TEXT_INPUT", "id": "input_username", "ref": "username", "label": "Username", "placeholder": "Pick a username", "required": true },
{ "type": "PASSWORD_INPUT", "id": "input_password", "ref": "password", "label": "Password", "placeholder": "Choose a password", "required": true },
{ "type": "ACTION", "id": "action_credentials", "label": "Continue", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [
{ "ref": "input_username", "identifier": "username", "type": "TEXT_INPUT", "required": true },
{ "ref": "input_password", "identifier": "password", "type": "PASSWORD_INPUT", "required": true }
],
"action": { "ref": "action_credentials", "nextNode": "basic_auth" }
}
]
},
{
"id": "basic_auth",
"type": "TASK_EXECUTION",
"executor": { "name": "BasicAuthExecutor" },
"onSuccess": "provisioning"
},
{
"id": "provisioning",
"type": "TASK_EXECUTION",
"properties": { "assignRole": "wayfinder-traveler-role" },
"executor": {
"name": "ProvisioningExecutor",
"inputs": [
{ "ref": "input_username", "identifier": "username", "type": "TEXT_INPUT", "required": true },
{ "ref": "input_password", "identifier": "password", "type": "PASSWORD_INPUT", "required": true }
]
},
"onSuccess": "auth_assert",
"onIncomplete": "prompt_schema_attrs"
},
{
"id": "prompt_schema_attrs",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "heading_schema_attrs", "label": "Tell us about you", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_dynamic_user_inputs",
"components": [
{ "type": "DYNAMIC_INPUT_PLACEHOLDER", "id": "dynamic_inputs" },
{ "type": "ACTION", "id": "action_schema_attrs", "label": "Continue", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{ "inputs": [], "action": { "ref": "action_schema_attrs", "nextNode": "provisioning" } }
]
},
{
"id": "auth_assert",
"type": "TASK_EXECUTION",
"executor": { "name": "AuthAssertExecutor" },
"onSuccess": "end"
},
{ "id": "end", "type": "END" }
]
}Replace
wayfinder-traveler-rolewith the ID of theTravelerrole you created above if it differs.See Build a Flow.
-
Go to Applications → WAYFINDER → Flows and select the registration flow you just created from the Registration Flow dropdown. Save the application.
See Manage Applications.
Build the Account Recovery Flow
The recovery flow drives Account Recovery. It:
- Prompts the user for a username.
- Identifies the user.
- Generates a recovery token.
- Sends the recovery email.
- Verifies the token from the email link.
- Lands the user on a Set new password screen and updates the credential.
SMTP must be configured for the recovery email to reach the user. The SMTP step is covered in the Set Up Account Recovery and is required regardless of which path you took.
-
Save the JSON below as
wayfinder-recovery-flow.jsonand POST it to the flows API:curl -k -X POST https://localhost:8090/flows \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @wayfinder-recovery-flow.jsonwayfinder-recovery-flow.json
{
"handle": "wayfinder-recovery-flow",
"name": "Wayfinder Password Recovery Flow",
"flowType": "RECOVERY",
"nodes": [
{ "id": "start", "type": "START", "onSuccess": "prompt_username" },
{
"id": "prompt_username",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_username", "label": "Reset your password", "variant": "HEADING_1" },
{ "type": "TEXT", "id": "text_subtitle_username", "label": "Enter your username and we'll email you a recovery link.", "variant": "HEADING_6" },
{
"type": "BLOCK",
"id": "block_username",
"components": [
{ "id": "input_username", "ref": "username", "type": "TEXT_INPUT", "label": "Username", "required": true, "placeholder": "Your username" },
{ "type": "ACTION", "id": "action_submit_username", "label": "Send recovery link", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "input_username", "identifier": "username", "type": "TEXT_INPUT", "required": true } ],
"action": { "ref": "action_submit_username", "nextNode": "identify_user" }
}
]
},
{
"id": "identify_user",
"type": "TASK_EXECUTION",
"executor": {
"name": "IdentifyingExecutor",
"mode": "identify",
"inputs": [ { "ref": "input_username", "identifier": "username", "type": "TEXT_INPUT", "required": true } ]
},
"onSuccess": "generate_recovery_token",
"onFailure": "email_sent_status"
},
{
"id": "generate_recovery_token",
"type": "TASK_EXECUTION",
"executor": { "name": "InviteExecutor", "mode": "generate" },
"onSuccess": "send_recovery_email"
},
{
"id": "send_recovery_email",
"type": "TASK_EXECUTION",
"properties": { "emailTemplate": "PASSWORD_RECOVERY" },
"executor": { "name": "EmailExecutor", "mode": "send" },
"onSuccess": "email_sent_status",
"onFailure": "email_sent_status"
},
{
"id": "email_sent_status",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "email_sent_icon", "label": "✉️", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_sent_heading", "label": "Check your email", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_sent_message", "label": "If an account matches, we've sent a recovery link.", "variant": "HEADING_6" }
]
},
"message": "Check Your Email",
"next": "verify_recovery_token"
},
{
"id": "verify_recovery_token",
"type": "TASK_EXECUTION",
"executor": {
"name": "InviteExecutor",
"mode": "verify",
"inputs": [ { "ref": "input_recovery_token", "identifier": "inviteToken", "type": "HIDDEN", "required": true } ]
},
"onSuccess": "prompt_new_password"
},
{
"id": "prompt_new_password",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_password", "label": "Set a new password", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_password",
"components": [
{ "id": "input_new_password", "ref": "password", "type": "PASSWORD_INPUT", "label": "New password", "required": true, "placeholder": "New password" },
{ "type": "ACTION", "id": "action_submit_password", "label": "Update password", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "input_new_password", "identifier": "password", "type": "PASSWORD_INPUT", "required": true } ],
"action": { "ref": "action_submit_password", "nextNode": "set_credential" }
}
]
},
{
"id": "set_credential",
"type": "TASK_EXECUTION",
"executor": { "name": "CredentialSetter" },
"onSuccess": "recovery_complete"
},
{
"id": "recovery_complete",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "recovery_complete_icon", "label": "✅", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "recovery_complete_heading", "label": "Password updated", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "recovery_complete_message", "label": "Return to Wayfinder and sign in with your new password.", "variant": "HEADING_6" }
]
},
"message": "Password Reset Successful",
"next": "end"
},
{ "id": "end", "type": "END" }
]
}See Build a Flow.
-
Go to Applications → WAYFINDER → Flows and select the recovery flow you just created from the Recovery Flow dropdown. Save the application.
See Manage Applications.
Set up Internal User Onboarding
These resources drive Onboard Internal Users.
-
Create the
Staffuser type. Navigate to User Types → Create User Type. Define the schema:Attribute Type Notes usernamestring Required, unique emailstring Required, unique passwordstring Credential displayNamestring Captured on invitation accept See User Types.
-
Create the staff roles. Navigate to Roles → Add Role. Add the three staff roles:
Role Purpose SupportConsumer support workflows DestinationsAdminCurate featured destinations OpsAdminInvite and manage other staff See Authorization.
-
Create the user onboarding flow. Save the JSON below as
wayfinder-onboarding-flow.jsonand POST it to the flows API. The flow validates admin permission, resolves the user type, prompts for the staff role (Support or DestinationsAdmin), collects the invitee's email, sends the invitation, and on accept provisions the new user with the matching role attached viaproperties.assignRole.curl -k -X POST https://localhost:8090/flows \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @wayfinder-onboarding-flow.jsonwayfinder-onboarding-flow.json
{
"handle": "wayfinder-onboarding-flow",
"name": "Wayfinder Staff Onboarding Flow",
"flowType": "USER_ONBOARDING",
"nodes": [
{ "id": "start", "type": "START", "onSuccess": "permission_validator" },
{
"id": "permission_validator",
"type": "TASK_EXECUTION",
"properties": { "requiredScopes": ["system"] },
"executor": { "name": "PermissionValidator" },
"onSuccess": "user_type_resolver"
},
{
"id": "user_type_resolver",
"type": "TASK_EXECUTION",
"executor": { "name": "UserTypeResolver" },
"onSuccess": "prompt_staff_role",
"onIncomplete": "prompt_usertype"
},
{
"id": "prompt_usertype",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "heading_usertype", "label": "Who are you inviting?", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_usertype",
"components": [
{ "type": "SELECT", "id": "usertype_input", "ref": "userType", "label": "User type", "placeholder": "Select a user type", "required": true, "options": [] },
{ "type": "ACTION", "id": "action_usertype", "label": "Continue", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "usertype_input", "identifier": "userType", "type": "SELECT", "required": true } ],
"action": { "ref": "action_usertype", "nextNode": "user_type_resolver" }
}
]
},
{
"id": "prompt_staff_role",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "heading_staff_role", "label": "Which staff role?", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "subtitle_staff_role", "label": "Pick the role to attach when the invitee accepts.", "variant": "HEADING_6" },
{
"type": "BLOCK",
"id": "block_staff_role_actions",
"components": [
{
"type": "STACK",
"id": "stack_staff_role_actions",
"direction": "row",
"justify": "center",
"components": [
{ "type": "ACTION", "id": "action_role_support", "label": "Support", "variant": "PRIMARY", "eventType": "SUBMIT" },
{ "type": "ACTION", "id": "action_role_destinations", "label": "DestinationsAdmin", "variant": "OUTLINED", "eventType": "SUBMIT" }
]
}
]
}
]
},
"prompts": [
{ "action": { "ref": "action_role_support", "nextNode": "prompt_email_support" } },
{ "action": { "ref": "action_role_destinations", "nextNode": "prompt_email_destinations" } }
]
},
{
"id": "prompt_email_support",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_email_s", "label": "Invitee email", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_email_s",
"components": [
{ "id": "input_prompt_email_s", "ref": "email", "type": "EMAIL_INPUT", "label": "Email", "required": true, "placeholder": "name@example.com" },
{ "type": "ACTION", "id": "action_submit_email_s", "label": "Send invitation", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "input_prompt_email_s", "identifier": "email", "type": "EMAIL_INPUT", "required": true } ],
"action": { "ref": "action_submit_email_s", "nextNode": "check_email_uniqueness_support" }
}
]
},
{
"id": "check_email_uniqueness_support",
"type": "TASK_EXECUTION",
"executor": { "name": "AttributeUniquenessValidator" },
"onSuccess": "invite_generate_support",
"onIncomplete": "prompt_email_support"
},
{
"id": "invite_generate_support",
"type": "TASK_EXECUTION",
"executor": { "name": "InviteExecutor", "mode": "generate" },
"onSuccess": "send_invite_email_support"
},
{
"id": "send_invite_email_support",
"type": "TASK_EXECUTION",
"properties": { "emailTemplate": "USER_INVITE" },
"executor": { "name": "EmailExecutor", "mode": "send" },
"onSuccess": "email_invite_status_support",
"onFailure": "email_invite_status_support"
},
{
"id": "email_invite_status_support",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "email_status_icon_s", "label": "✅", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_status_heading_s", "label": "Invitation sent", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_status_message_s", "label": "The invitee can now accept from email and become a Support staff member.", "variant": "HEADING_6" }
]
},
"message": "Invitation sent",
"next": "invite_verify_support"
},
{
"id": "invite_verify_support",
"type": "TASK_EXECUTION",
"inputs": [ { "ref": "input_invite_token_s", "identifier": "inviteToken", "type": "HIDDEN", "required": true } ],
"executor": { "name": "InviteExecutor", "mode": "verify" },
"onSuccess": "provisioning_support"
},
{
"id": "provisioning_support",
"type": "TASK_EXECUTION",
"properties": { "includeOptional": true, "includeOptionalCredentials": true, "assignRole": "wayfinder-support-role-id" },
"executor": { "name": "ProvisioningExecutor" },
"onSuccess": "registration_complete",
"onIncomplete": "prompt_user_details_support"
},
{
"id": "prompt_user_details_support",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_user_details_s", "label": "Complete your profile", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_user_details_s",
"components": [
{ "type": "DYNAMIC_INPUT_PLACEHOLDER", "id": "dynamic_inputs_user_details_s" },
{ "type": "ACTION", "id": "action_user_details_s", "label": "Finish", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{ "inputs": [], "action": { "ref": "action_user_details_s", "nextNode": "provisioning_support" } }
]
},
{
"id": "prompt_email_destinations",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_email_d", "label": "Invitee email", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_email_d",
"components": [
{ "id": "input_prompt_email_d", "ref": "email", "type": "EMAIL_INPUT", "label": "Email", "required": true, "placeholder": "name@example.com" },
{ "type": "ACTION", "id": "action_submit_email_d", "label": "Send invitation", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{
"inputs": [ { "ref": "input_prompt_email_d", "identifier": "email", "type": "EMAIL_INPUT", "required": true } ],
"action": { "ref": "action_submit_email_d", "nextNode": "check_email_uniqueness_destinations" }
}
]
},
{
"id": "check_email_uniqueness_destinations",
"type": "TASK_EXECUTION",
"executor": { "name": "AttributeUniquenessValidator" },
"onSuccess": "invite_generate_destinations",
"onIncomplete": "prompt_email_destinations"
},
{
"id": "invite_generate_destinations",
"type": "TASK_EXECUTION",
"executor": { "name": "InviteExecutor", "mode": "generate" },
"onSuccess": "send_invite_email_destinations"
},
{
"id": "send_invite_email_destinations",
"type": "TASK_EXECUTION",
"properties": { "emailTemplate": "USER_INVITE" },
"executor": { "name": "EmailExecutor", "mode": "send" },
"onSuccess": "email_invite_status_destinations",
"onFailure": "email_invite_status_destinations"
},
{
"id": "email_invite_status_destinations",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "email_status_icon_d", "label": "✅", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_status_heading_d", "label": "Invitation sent", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "email_status_message_d", "label": "The invitee can now accept from email and become a DestinationsAdmin staff member.", "variant": "HEADING_6" }
]
},
"message": "Invitation sent",
"next": "invite_verify_destinations"
},
{
"id": "invite_verify_destinations",
"type": "TASK_EXECUTION",
"inputs": [ { "ref": "input_invite_token_d", "identifier": "inviteToken", "type": "HIDDEN", "required": true } ],
"executor": { "name": "InviteExecutor", "mode": "verify" },
"onSuccess": "provisioning_destinations"
},
{
"id": "provisioning_destinations",
"type": "TASK_EXECUTION",
"properties": { "includeOptional": true, "includeOptionalCredentials": true, "assignRole": "wayfinder-destinations-admin-role-id" },
"executor": { "name": "ProvisioningExecutor" },
"onSuccess": "registration_complete",
"onIncomplete": "prompt_user_details_destinations"
},
{
"id": "prompt_user_details_destinations",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "text_header_user_details_d", "label": "Complete your profile", "variant": "HEADING_1" },
{
"type": "BLOCK",
"id": "block_user_details_d",
"components": [
{ "type": "DYNAMIC_INPUT_PLACEHOLDER", "id": "dynamic_inputs_user_details_d" },
{ "type": "ACTION", "id": "action_user_details_d", "label": "Finish", "variant": "PRIMARY", "eventType": "SUBMIT" }
]
}
]
},
"prompts": [
{ "inputs": [], "action": { "ref": "action_user_details_d", "nextNode": "provisioning_destinations" } }
]
},
{
"id": "registration_complete",
"type": "PROMPT",
"meta": {
"components": [
{ "align": "center", "type": "TEXT", "id": "registration_complete_icon", "label": "✅", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "registration_complete_heading", "label": "Welcome to Wayfinder", "variant": "HEADING_1" },
{ "align": "center", "type": "TEXT", "id": "registration_complete_message", "label": "Your staff account is ready.", "variant": "HEADING_6" }
]
},
"message": "Registration complete",
"next": "end"
},
{ "id": "end", "type": "END" }
]
}Replace
wayfinder-support-role-idandwayfinder-destinations-admin-role-idwith the IDs of theSupportandDestinationsAdminroles you created in step 2.See Build a Flow.
-
ThunderID permits one
USER_ONBOARDINGflow at a time, selected by handle indeployment.yaml. Point it at your flow and restart:flow:
user_onboarding_flow_handle: "wayfinder-onboarding-flow" -
Create Alex Carter as a
Staffuser with theOpsAdminrole so he can issue invitations. Navigate to Users → Add User.See Manage Users.