OnboardConnectIT Administrator Manual

OnboardConnect · IT Administrator Manual

Automate student accounts, end to end

How to connect Slate, your directories and your student systems, build workflows, and run the on-prem Agent. Press / to search anywhere in the manual.

1. What is OnboardConnect?

OnboardConnect is a cloud-based platform that automates the full student account lifecycle for higher education, triggered by Slate CRM imports. It provisions and maintains accounts across three identity platforms and writes results back to your Student Information System (SIS) — eliminating manual work and reducing provisioning lag from days to minutes.

Identity platforms (directory targets)

A single workflow can target any combination of three directories:

SIS writeback

OnboardConnect reads from and writes back to your SIS so the directory and the system of record stay aligned. Supported systems are Ellucian Ethos (Banner and Colleague), Oracle PeopleSoft, and Workday Student. SIS access runs through the on-prem Agent as a local SIS profile, so your SIS credentials stay on campus — a "SIS" connection in the portal simply points at the agent, the profile, and the vendor.

How it works

  1. Data arrives — via either Slate connection type: Query Web Services or Source Format API.
  2. The workflow runs — your visual workflow evaluates and shapes each record, then executes its ordered steps against AD, Entra, Google Workspace, the SIS, files, and notification channels.
  3. The right surface executes — on-prem AD and SIS actions run through the OnboardConnect Agent inside your network; Entra runs through Microsoft Graph; Google Workspace runs through the Admin SDK.
  4. Results are logged — every action is recorded in the Audit Log with actor, timestamp, and outcome, and the full run history is retained with a live run view.
On-prem credentials never leave campus. Your Active Directory and SIS stay on-premise. The OnboardConnect Agent bridges the gap — it runs inside your network and receives encrypted instructions from the cloud over an encrypted WebSocket relay.

The visual workflow builder

The core of OnboardConnect is a drag-and-drop workflow builder. Steps are ordered and branchable with On Success / On Failure lanes, each step has per-step field mapping, and rows can be filtered and transformed between steps. Workflows support continue-on-error, chunked processing of large imports, and full run history with a live run view. See the complete Workflow Action Catalog for every available step.

Key capabilities

CapabilityDetails
Account provisioningCreate, update, activate, deactivate, and delete accounts in On-Prem AD, Microsoft Entra ID, and Google Workspace on enrollment lifecycle events
SIS writebackRead from and upsert to Ellucian Ethos (Banner/Colleague), Oracle PeopleSoft, and Workday Student via the on-prem Agent
Visual workflow builderDrag-and-drop, ordered/branchable steps with On Success / On Failure lanes, per-step field mapping, filters, transforms, continue-on-error, and chunked large imports
Slate connectionConnect via Query Web Services or Source Format API — no custom Slate development required
Search SettingsAdmin-configurable directory search: define searchable attributes, result columns, and which connection handles each action
Provision RulesNamed rule sets (for example Students, Staff, Faculty) for username format, password policy, and conditional security-group and distribution-list membership
Internal FormsForms your staff fill in or import from CSV; workflows read and update the submissions — for example to create staff and faculty accounts
Audit logFull history of every provisioning action with rollback visibility
ReportsDisabled accounts, new AD users, Slate accepts, and custom saved reports
Multi-user portalInvite IT staff with granular role-based permissions
API & webhooksREST API and outbound webhooks for integration with other campus systems

2. Your 90-Day Trial

Every new institution starts with a full 90-day trial. During the trial:

After the trial: Your account transitions to a paid plan. Contact your Zentrosoft account representative or email solutions@zentrosoft.com to sign your service agreement before the trial ends to avoid any interruption.

3. Initial Setup

After your account is provisioned by Zentrosoft, you will receive a login invitation email. Complete setup in this order:

Install the portal as an app. In Edge or Chrome, click the install icon in the address bar (or ⋯ → Apps → Install OnboardConnect); on a phone, Add to Home Screen. It opens in its own window with the OnboardConnect icon. Your data is never stored on the device — the app always shows live data, and an offline notice when there is no connection.

3.1 Sign in for the first time

  1. Click the link in your invitation email.
  2. Set your password and complete your profile.
  3. Sign in at your institution's OnboardConnect portal URL (e.g., app.onboardconnectapp.com).
  4. Enter the 6-digit sign-in code we email you. The code expires in 10 minutes and works once; use Resend code if it doesn't arrive.
Two-step sign-in. Every password sign-in asks for a code emailed to your account address. Tick Don't ask for a code on this device for 30 days on the code screen (it's off by default) to skip the code on that browser; changing or resetting your password cancels every trusted device. If you get a code you didn't ask for, someone has your password — reset it right away. SSO sign-in is unchanged and uses your institution's own MFA.
Forgot your password? Click Forgot password? on the sign-in page and enter your email. You'll receive a one-time reset link that expires in 1 hour. If your account hasn't been activated yet, the same link re-sends your invitation instead. SSO accounts have no OnboardConnect password — use your institution's SSO Login URL.

3.2 Configure your AD connection

Go to Connections and add your Active Directory or Microsoft Entra ID connection. For on-premise AD, install the OnboardConnect Agent on a server inside your network first — see On-Premise Agents. For Microsoft Entra ID, no agent is required — provisioning uses the Microsoft Graph API directly.

3.3 Set up your data source

Connect at least one Slate data source:

3.4 Create your first Workflow

Go to Workflows and build a workflow: a source step that reads your records (for example Slate Query Service Read), the action steps that create or update accounts, and how it is started — manually, on a schedule, or when a form is submitted. See Workflows for details.

3.5 Configure Provision Rules

Go to Provision Rules and configure how accounts are built: set your username format, password policy, and group membership rules. Every tenant starts with one rule set, Students; add more (for example Staff) when other kinds of accounts need different rules. See Provision Rules for details.

3.6 Configure Record Management

If your team needs to look up student accounts in the portal, go to Record Management (labeled Search Settings in the sidebar under some configurations) and mark at least one Microsoft Entra ID or On-Prem Agent connection as Active, then configure which attributes are searchable and which connection handles each user action. See Search Settings for details.

3.7 Run a test

Run the workflow manually against a test record and check its run history before turning on its schedule or form trigger. See Testing a workflow for details.

4. Users & Roles

OnboardConnect uses role-based access control (RBAC). Each user is assigned a role that determines which portal sections and actions they can access.

RoleAccess level
OwnerFull access to all sections, settings, and billing. Can invite and remove users. Typically the IT director.
AdminFull operational access. Can manage connections, workflows, and run provisioning. Cannot manage other admins or view contract/billing details.
OperatorCan view students and trigger actions (disable, reprovision). Cannot change connections or workflows.
ViewerRead-only access to dashboard, students, audit log, and reports.

Manage users from Settings → Users & Roles. See Users & Roles settings.

5. Dashboard

The Dashboard gives you a real-time snapshot of your provisioning environment.

KPI cards

CardWhat it shows
Total Active StudentsStudents with live, enabled AD accounts
Provisioned This WeekNew accounts created in the current week
Pending JobsProvisioning jobs queued or in progress
Failed Jobs (24h)Jobs that encountered errors in the last 24 hours

Each card shows a delta indicator (arrow and count) comparing the current value to the previous period. The comparison row is hidden when the delta is zero — it only appears when there is a meaningful change.

Recent activity

The activity feed shows the last 10 provisioning events with student name, action taken, and result. Click any row to open the full Audit Log entry.

Job queue chart

A bar chart showing daily job volume (created, updated, disabled) for the past 14 days. Useful for identifying unusual spikes or drops in provisioning activity.

Navigating lists

Every paginated table in the portal — Students, Workflows (runs and workflow lists), Connections, Credentials, Agents, Provisioning Rules, Scheduled Deletions, Audit Log, Reports, Email Templates, and Users & Roles — uses the same pagination footer beneath the table card:

The previous "Load more" and "Show more" buttons have been retired across the portal. All list pages behave the same way.

6. Directory Search

Directory Search queries the connected directory live for user accounts. It is the searchable view IT staff use to look up student records in the connections you have marked as Active.

6.1 Search results

Use the search bar and the searchable attributes configured in Search Settings to find users. The search spans both the connection's configured search OU and its Disable OU (where deactivated accounts are moved), so disabled accounts still appear in results.

Each result row shows a status badge — green Active or red Disabled — so you can tell at a glance whether an account is enabled.

6.2 Student detail

Click any student row to open their detail view. The detail page contains three tabs:

6.3 Manual actions

From the student detail page, authorized users can trigger manual actions using the action buttons displayed at the top of the record. Buttons appear only for actions that the configured connection supports:

ActionWhat it doesRequired role
Security GroupsOpens the student's current security group memberships and lets you trigger a syncOperator+
Distribution ListsOpens the student's current distribution list membershipsOperator+
Reset PasswordTriggers an AD password reset using the configured password connectionAdmin+
Deactivate / ActivateDisables or re-enables the student's AD accountOperator+

The button order in the UI is: Security Groups, Distribution Lists, Reset Password, then Deactivate/Activate.

Manual actions are logged. Every manual action is recorded in the Audit Log with the actor's name and the reason provided.

7. Workflows

Workflows are the heart of OnboardConnect. A workflow is a named, ordered list of steps: it reads records from a source, shapes them, acts on them (create, update, disable, write back…), and notifies people about the outcome. You build it visually in the workflow editor by adding steps from the step palette.

7.1 How workflows work

The editor canvas has three lanes:

LaneWhen its steps run
PipelineOn every run, top to bottom. This is where the work happens.
On SuccessOnly when the run completes successfully — for example, a Chat or Email step announcing the result.
On FailureOnly when the run fails or finishes Partial (some records failed) — for example, an Email or SMS alert to IT.

Records flow through the Pipeline as rows. A source step produces the rows; each later step works on the rows handed to it and passes them on, and the fields a step adds (for example a generated username or password) are available to every step after it. Action steps such as On-Prem Create need a read step earlier in the Pipeline to give them rows.

Each workflow runs on its own — there is no "first matching workflow" order between workflows. To treat different kinds of records differently, use a Filter Rows step inside one workflow, or build separate workflows.

When a step fails

7.2 Creating a workflow

  1. Go to Workflows and click New Workflow. Give it a descriptive name (e.g., "New undergrads — create AD account") and, optionally, a description and a color group.
  2. Add a source step to the Pipeline — for example Query Service Read on your Slate connection (see 7.4).
  3. Optionally add Filter Rows to keep only the records this workflow should handle, and Transform Fields to build the values you need.
  4. Add the action steps — create, update, activate, set password, groups, write back to Slate or the SIS. Steps that generate usernames, passwords or group memberships use a Provision Rules rule set, chosen on the step (see 10.6).
  5. Optionally drag notification steps into the On Success and On Failure lanes.
  6. Open each step and complete its configuration. Under Settings in the editor sidebar, choose how the workflow is started (7.3).
  7. Save. A new workflow is saved with Save Workflow; after that the editor saves each change automatically. Turn on Active once every active step is fully configured — a workflow with an incomplete step is saved as inactive.

Each step card has its own on/off switch: a step that is switched off is skipped on runs but keeps its configuration. Drag a step's card to reorder it within its lane.

7.2a The action editor

Opening a step shows its settings as numbered sections, top to bottom in the order you fill them in. Where an action has them, sections come in this order: Connection → Target (OU, table, form, file or endpoint) → Provision Rule Set → Identity / Username → values (field mapping, password, groups / lists) → Options → Password Recovery → Output Fields. Numbers update when a section appears or disappears because of a choice you make.

Each section has an icon and a colour that means the same thing on every action:

ColourSection
TealConnection; Output Fields
IndigoTarget — OU, table, form, file, endpoint, search base
VioletProvision Rule Set
BlueIdentity — which account the action works on
CyanUsername
OrangePassword and Password Recovery
FuchsiaSecurity groups, distribution lists, licenses
GreenField and attribute mapping
LimeFilters and conditions
GreyOptions
PinkEmail, chat and SMS content and recipients

Default sources on new actions

When you add a provisioning action, its username, password, security-group and distribution-list sources start on From provision rule (recommended), so the step follows the rule set chosen in its Provision Rule Set section. You can change any of them: a password or a membership list can instead be Static (the same for every record) or From a field (per record); a username can come From a field; On-Prem Create's Initial Password can also be None. Steps saved before this default keep the sources they were saved with.

7.3 Triggers — when a workflow runs

TriggerHow to set it up
ManualClick Run in the editor (it saves first), or the Run Now (lightning) button on the workflow's row in the list. Only an active workflow can be run, and a workflow that is already running can't be started again until that run ends. Both buttons stay disabled until every active step is fully configured; hovering over them shows Finish setting up every action before running. Complete the step, or switch it off.
ScheduleIn the editor sidebar, turn on Schedule (Run automatically on a set schedule). Pick a Frequency — Every Hour, Daily, Weekly (choose the days), Monthly (choose the day of the month), or Custom (Advanced) for a five-field cron expression, with ready-made templates such as Every 30 minutes, weekdays 9 AM–5 PM and a link to a cron builder. Set the Timezone the schedule is read in (UTC by default). The list's Schedule column shows the schedule in words.
Run when a form is submittedIn the editor sidebar, pick an Internal Form. Each new entry of that form then starts a run while the workflow is active, and the list shows a Form trigger badge. Which entries count — submissions made in the portal, and/or a finished import into the form — is set on the form (see 26.5). Add a Form Read step with Only the submission that started this run to work on just the new entry.

Active Date Range (optional From / To dates in the sidebar) limits the days on which the schedule runs the workflow; leave both blank for no restriction. Turning Active off pauses the workflow — manual, scheduled and form-started runs are all blocked.

CSV files. To run a workflow over the records in a CSV file, import the file into an Internal Form (26.3), then either turn on Start workflows after an import on the form or run the workflow manually with a Form Read step. To process a file that lands on a server, use the On-Prem Read File step.

7.4 Step types

The step palette groups steps by what they connect to. By what they do in a workflow:

RoleSteps
Sources — produce the rowsSlate Query Service Read, Form Read, SIS Read, SQL Read, On-Prem Read File. On-Prem Read and Entra Read look up existing directory accounts, to enrich rows or check whether an account already exists.
Shape & routeFilter Rows (keep the rows matching ALL or ANY conditions; dropped rows are reported as skipped), Transform Fields (compute columns from {field} templates), Idle / Wait (pause for a number of minutes).
ActionsOn-Prem Active Directory, Microsoft Entra and Google Workspace account steps (create, update, activate / deactivate, password, groups, licenses, move OU, delete); Slate Source Format Write; SIS Upsert; SQL Create / Update / Delete; Form Update; file steps (On-Prem Write File, Slate File Download / Upload).
NotificationsEmail Notify, SMS (Twilio), Chat (Slack / Teams), Webhook — in the Pipeline, or in the On Success / On Failure lanes.

Every step is described in the Workflow Action Catalog (7.4a). The details below apply to the On-Prem Create and Update steps.

On-Prem Create — sections

The On-Prem Create step's sections, in order:

#SectionWhat you set
1ConnectionThe On-Prem Agent connection (required).
2Target OUWhere the accounts are created — see below.
3Provision Rule SetAlways shown on this step. The rule set controls the username and the initial password wherever their source is the provision rule, and its duplicate-name rule (If username already exists…, 10.2) always applies — also when the username comes from a field. See 10.6.
4UsernameUsername Source: From provision rule (recommended) — map the {first_name}, {last_name}, {middle_name} and {student_id} tokens to fields — or From a field (per record) — pick the sAMAccountName field.
5Field MappingDisplay Name (required), Email and Department (optional). With a username from a field, First Name and Last Name (required) and Student ID (optional, stored in extensionAttribute1) are mapped here too. Leave Email empty to use username@<UPN Domain>.
6Initial PasswordSee below.
7Existing AccountsIf the account already exists, update it with these settings — applies the mapped name, display name, email, department and custom attributes to the existing account instead of creating a new one.
8Custom AttributesOptional extra AD attributes (below).
9Password RecoveryOptional recovery email and phone fields, saved for Self-Service Password Reset.
10Output FieldsWhat the step passes to later steps, e.g. Generated Password for a welcome email.
No groups on the create step. Security groups and distribution lists are set with their own actions — On-Prem Security Groups and On-Prem Distribution Lists — placed after On-Prem Create.

On-Prem Create — Target OU

Where new accounts are created is set on the step itself. The OU Source chooses how:

Each create step has its own OU, so a Students workflow and a Staff workflow on the same connection can create accounts in different places. The OUs listed on the connection in Record Management → Active Connections (also used by Self-Service) are only where directory reads search — they are never used to create accounts. A record with no OU (an empty OU field and no Fallback OU) fails rather than landing in the default Users container.

On-Prem Create — Initial Password

The Password Source sets whether the account gets a password in the same operation that creates it:

SourceResult
From provision rule (recommended)A password generated per account from the Password Policy of the step's rule set, available to later steps as {{generatedPassword}}.
Static passwordThe same password on every account this step creates.
From a field (per record)Each record's password from the chosen field. A record whose value is empty is created disabled, without a password.
NoneThe account is created disabled; set the password later with a Set Password step. Steps saved before the default changed show None if they never set a password.

With a password, the account is created enabled. Force password change on next sign-in is on by default (with the directory's password policy it is always forced). Tick Generated Password under Output Fields to pass the password to a welcome email or writeback.

Encrypted LDAP required. Setting a password writes unicodePwd, which Active Directory only accepts over an encrypted connection: LDAPS on port 636, or StartTLS on port 389 (see 18.5). Without it, AD refuses the password and the record fails; the account may already exist, disabled and without a password.

On-Prem Create — userPrincipalName

The userPrincipalName is generated as sAMAccountName@<domain>, where the domain is the UPN Domain on Provision Rules → Username Format (of the step's rule set). It is kept separate from the email address (mail), so the two can differ.

Custom attributes (Create & Update)

On-Prem Create and Update steps can map extra AD attributes — for example extensionAttribute1 or studentid — each sourced from a row column or a static value.

On-Prem Update is now custom-only. Every attribute written by an Update step comes from an explicit mapping you define (the same model as Entra Update). There are no implicit "common fields" — if an attribute is not mapped, it is not touched.

7.4a Workflow Action Catalog

A workflow is built from steps. Each step belongs to a group below and is added from the step palette in the builder. Steps are ordered and branchable (On Success / On Failure), and every step exposes per-step field mapping so you control exactly which row column feeds which target attribute. The catalog is grouped in the order the palette presents it.

Slate

ActionWhat it does
Query Service ReadPulls rows from a Slate Query Web Services connection — the usual starting step for a workflow. Turn on Combine with records from earlier steps to merge a second query's rows into the earlier records by a key (default ReferenceNumber) instead of replacing them.
Source Format WriteWrites rows back to Slate through a Slate Source Format connection, for example to record provisioning outcomes on the applicant record. Its Pass-through section hands the record's fields on to the next step (output mappings apply after the post; what is sent to Slate does not change).

On-Prem Active Directory

Executed by the on-prem OnboardConnect Agent over LDAP.

ActionWhat it does
On-Prem ReadLooks up existing AD accounts to enrich rows or branch on whether a user already exists.
On-Prem CreateCreates a new AD account, optionally setting an initial password and enabling it in the same operation. The OU can be the same for every record or come from a field. Group and distribution-list membership is set by the two actions below. See On-Prem Create — sections.
On-Prem UpdateWrites mapped attributes to an existing account. Custom-only — only attributes you map are touched.
On-Prem ActivateEnables a disabled AD account.
On-Prem DeactivateDisables an AD account without deleting it.
On-Prem Set PasswordSets or resets the account password. Requires an encrypted LDAP connection on the agent — LDAPS (port 636), or StartTLS on port 389.
On-Prem Move OUMoves the account to a different organizational unit. OU Source: Same OU for every record (Target OU, required) or From a field (per-record OU) — the OU Field holds each record's destination, e.g. a form dropdown Staff | OU=Staff,…. With a field, the optional Fallback OU is used when a record's field is empty; without a fallback, those records are skipped (not failed).
On-Prem Security GroupsAdds or removes the account's security-group memberships. Source: From provision rule (recommended), Static list or From a field (comma-separated).
On-Prem Distribution ListsAdds or removes the account's mail-enabled distribution-list memberships. Same three sources as Security Groups.
On-Prem DeletePermanently removes the AD account. Irreversible — use with caution.

Microsoft Entra

Executed directly through the Microsoft Graph API — no agent required.

ActionWhat it does
Entra ReadLooks up existing Entra accounts to enrich rows or branch on existence.
Entra LicenseAssigns or removes Microsoft 365 license SKUs on the account.
Entra CreateCreates a new Entra ID account from mapped fields.
Entra UpdateWrites mapped attributes to an existing account.
Entra ActivateRe-enables a blocked account (accountEnabled = true).
Entra DeactivateBlocks sign-in on the account (accountEnabled = false).
Entra Set PasswordSets or resets the account password.
Entra Security GroupsAdds or removes the account's Entra security-group memberships.
Entra DeletePermanently removes the Entra account.

Google Workspace

Executed through the Google Admin SDK using a service account with domain-wide delegation.

ActionWhat it does
Google CreateCreates a new Google Workspace user from mapped fields.
Google UpdateWrites mapped attributes to an existing user.
Google ActivateUn-suspends a suspended user.
Google SuspendSuspends the user, blocking sign-in without deleting the account.
Google Set PasswordSets or resets the user's password.
Google GroupsAdds or removes the user's Google Group memberships.

Files

Executed by the on-prem Agent against a network path the agent service account can reach.

ActionWhat it does
On-Prem Read FileReads a file from a configured on-prem path and feeds its rows into the workflow.
On-Prem Write FileWrites the current rows to a file at a configured on-prem path (e.g., a feed for another campus system). Under Fields to write, pick which fields of the previous action become columns and set their order (↑ ↓); leave it empty to write every field.
Slate File DownloadPulls a file out of Slate and delivers it to a folder on your on-prem Agent machine — over authenticated HTTPS, no SFTP. Handles large binaries (PDFs, documents, multi-MB). See Slate file transfer steps.
Slate File UploadTakes a file from your on-prem Agent machine and uploads it into Slate through a Source Format — over authenticated HTTPS, no SFTP. See Slate file transfer steps.

Slate file transfer steps (Download / Upload)

The two Slate file transfer steps move whole files between Slate and your on-prem Agent machine without standing up an SFTP server. Transfers run over authenticated HTTPS and are built to handle large binaries — PDFs, scanned documents, and other multi-MB files. They sit alongside Query Service Read and Source Format Write in the Slate-triggered workflow builder.

How the bytes travel. File contents are staged through encrypted R2 object storage and moved by the on-prem Agent over direct HTTPS. Nothing flows over the encrypted WebSocket control channel — that channel only carries the short instruction telling the Agent where to fetch from or push to. The staged object is deleted after each transfer.

Slate File Download

Pulls a file from Slate and writes it to a folder on the Agent host machine — for example, to land a document export where another campus process can pick it up. Configuration fields:

FieldWhat to enter
ConnectionA Slate Query Web Services connection — the source the file is pulled from.
Source typeChoose Slate File URL or Query GUID. This toggles which of the next two fields is used.
Slate file URL / Query GUIDEither the authenticated Slate URL of the file, or the Slate query GUID that resolves to it. Supply whichever matches the chosen source type.
Destination pathThe folder/path on the Agent machine where the file is written (a path the Agent service account can reach).
OverwriteWhen off (the default), the step does not replace an existing file at the destination. Turn it on to allow overwriting.

Slate File Upload

Takes a file from the Agent host machine and uploads it into Slate through a Source Format. Configuration fields:

FieldWhat to enter
ConnectionA Slate Source Format connection — the Slate Source Format the file is posted into.
Source pathThe path on the Agent machine of the file to upload (readable by the Agent service account).
File name (optional)The name to send to Slate. If left blank, the file's own name is used.

Prerequisites for Slate file transfer

Student Information System

Executed by the on-prem Agent against the SIS profile referenced by a "SIS" connection (Ellucian Ethos / Banner / Colleague, Oracle PeopleSoft, or Workday Student).

ActionWhat it does
SIS ReadReads records from the SIS; each record becomes one row for the steps after it. Click Fetch Fields to load the fields the read returns (with sample values) and pick the ones to keep.
SIS UpsertWrites back to the SIS — for Ethos, the student's network username on their person record, or custom fields (advanced) — so the system of record reflects provisioning outcomes. Optional Only for records with skips records missing any listed field, and Skip records that already have skips records where a listed field already has a value, so one workflow can chain writes not every record needs.

Endpoint URL (Ellucian Ethos). Each Ethos action carries its own Endpoint URL — the full request the agent makes. Its last path segment is the resource, and for SIS Read its query is the filter:

To readEndpoint URL
Every personhttps://integrate.elluciancloud.com/api/persons
The people in a saved person filter (population)https://integrate.elluciancloud.com/api/persons?personFilter={"<guid>"}
Students onlyhttps://integrate.elluciancloud.com/api/persons?criteria={"roles":[{"role":"student"}]}
Program enrolmentshttps://integrate.elluciancloud.com/api/student-academic-programs

Writing to Ethos (SIS Upsert → Custom fields). Enter the write's Endpoint URL (e.g. https://integrate.elluciancloud.com/api/persons) and click Fetch Fields: the agent reads one record there and lists the parameters the resource accepts as paths into the record — only their names, never the values. Then, for each parameter you want to send, choose where its value comes from:

SIS parameterValue from
names[0].type.categoryFixed value legal
names[0].firstNameField from the previous step, e.g. FirstName
emails[0].addressField from the previous step, e.g. Email

SQL Server

Executed by the on-prem Agent against the SQL profile referenced by a "SQL Server" connection (8.9). Pick the table on the action; its columns load from the database.

ActionWhat it does
SQL CreateInserts a row — one per incoming row. Map each column to a row field or a fixed value. When no records reach it (for example it is the first step, or every record failed earlier), a mapping that uses any record field inserts nothing; a mapping of fixed values only inserts one row. The new row's identity (e.g. Id) can be returned as a field for later steps.
SQL ReadReads rows, optionally filtered by columns equal to row fields or fixed values. Up to 5,000 rows.
SQL UpdateUpdates the rows matching the filter with the mapped values. Updating every row in the table must be confirmed on the action.
SQL DeleteDeletes the rows matching the filter. Deleting every row must be confirmed on the action.

SQL Create, Update and Delete hand their incoming fields on to the next step when they have no output mapping, and SQL Create's Pass-through section (shown even before a table is chosen) can also offer the values it wrote.

Example — Ethos into a SQL table. SIS Read on the Ethos connection with Endpoint URL https://integrate.elluciancloud.com/api/persons?personFilter={"<guid>"} and Fetch Fields → then SQL Create on the SQL Server connection, table dbo.Students, mapping EthosId ← id, BannerId ← bannerId, FirstName ← firstName, LastName ← lastName, Email ← schoolEmail. Each person in the filter becomes one inserted row.

Forms

Read and update submissions of your Internal Forms through an Internal Form connection (8.10).

ActionWhat it does
Form ReadOutputs one row per submission of the chosen form that matches the conditions. Only the fields ticked in its Output section are passed on, plus _submission_id, _submitted_at and _submitted_by; a dropdown with option labels also offers <field>_label. Up to 1,000 submissions per run (Max rows). Conditions on dropdown and checkbox fields pick from the field's options. See 26.4.
Form UpdateWrites values back to the submissions the workflow read — a fixed value, one of the field's predefined options, or a value from an earlier step's field (+ Field… inserts {{column}}).

Provision Rule Set (on provisioning steps)

Steps that generate a username, a password, or group / list memberships from Provision Rules show a Provision Rule Set section with a Rule set choice: Default (Students), A specific rule set, or Chosen by a field. On-Prem Create, Entra Create and Google Create always show it; other steps show it while one of their sources is From provision rule. See 10.6.

Flow & Logic

ActionWhat it does
Filter RowsKeeps only the rows matching one or more conditions (field / operator / value), matching ALL or ANY. Dropped rows are reported as skipped; the kept count flows on. Use it to route a segment — for example, only Graduate applicants.
Transform FieldsComputes or sets row columns from a template that interpolates {field} tokens, with an optional text option. New columns become available to every later step. See Transform Fields below.
Idle / WaitPauses the workflow for a configured duration before continuing — for example, to let a directory sync settle before the next step.

Transform Fields

Each field assignment has a Target field (the column to set — a new one, or an existing one to overwrite), a Template, and a text option. In the template, {field} is replaced with the record's value of that field (field names are matched regardless of case; a missing or empty field becomes empty text). A template with no tokens sets the same value on every record. Example: Target displayName, Template {first_name} {middle_name} {last_name}.

Text optionApplied after the template is filled in
noneNo change.
UPPERCASE / lowercaseConverts every letter.
trimRemoves spaces at the start and end.
trim & single spacesTrims, and collapses every run of spaces to one — so an empty optional field (such as {middle_name} above) doesn't leave a double space: John  Smith → John Smith.
Title CaseCapitalises the first letter of each word and lowercases the rest of the word, so McDonald becomes Mcdonald. Don't use it on names that are already correctly capitalised.

Assignments run in order, so a later assignment can use a field set by an earlier one.

Notifications

ActionWhat it does
EmailEmail Notify sends an email template — a single run summary, or one message per record (e.g., a welcome email to each new account) when the template uses {{record.*}}, {{account.*}} or {{submission.*}} variables or the To / CC holds a field. Sends through OnboardConnect's mail service, or through an SMTP connection chosen on the step. See 27.3.
SMS (Twilio)Sends text messages via a Twilio connection. Two modes (see below): a single alert to one number, or a per-row text to each row's phone field.
Chat (Slack / Teams)Posts a message to a Slack or Microsoft Teams incoming webhook. Supports {tokens}: {workflow}, {status}, {count}, {tenant}, and any row column.
WebhookMakes one outbound HTTP call per run to a URL you configure, with a method, optional JSON headers, and a body that is either a run summary or the rows. Password-like fields are redacted; a non-2xx response fails the step.

SMS Notify — the two modes

The SMS step runs through a Twilio connection in one of two modes:

7.5 Username format

Username format is configured in Provision Rules → Username Format, per rule set. A Create step uses it when its Username Source is From provision rule (recommended) — the default for new steps. The rule set's If username already exists… choice applies to On-Prem Create whichever username source is used. See Provision Rules → Username Format.

7.6 Reordering steps

Drag a step's card up or down to change its position within its lane (Pipeline, On Success or On Failure); a step can't be dragged into another lane. Steps added from the palette go to the Pipeline — drag a step from the palette into the On Success or On Failure lane to add it there. The workflows themselves have no run order: each one runs on its own trigger, and the list can be sorted by any column.

7.7 Run history & per-record results

Click the clock icon on a workflow's row (or View Run History in the editor sidebar) to open its run history. Each run shows how it was started (manual, schedule, form, API), its status — Running, Completed, Partial, Failed or Cancelled — and its duration. Expand a run to see:

A running run can be cancelled from the history panel or the editor. Clear run history deletes the workflow's past runs.

7.8 Testing a workflow

There is no simulation mode — a run performs its steps for real. To try a workflow safely:

7.9 Running a workflow & live progress

You can run a workflow on demand from the editor with the Run button in the top-right, next to Save. It stays disabled until every active step is fully configured (hover for the reason). While a run is in progress the editor is locked — no edits are possible — until the run finishes.

As the run executes, each step shows live status (running → completed or failed) together with its result detail, for example "Created 2 AD accounts via on-prem agent".

The connectors between steps visualize the data handoff:

7.10 Filtering & pinning the workflows list

The Workflows list has a filter toolbar above the table:

Use the pin icon on any row to pin a workflow. Pinned workflows sort to the top of the list and can be isolated with the Pinned only toggle.

8. Connections

Connections define the external systems OnboardConnect communicates with. They are added from Connections → Add Connection. The available connection types are:

TypePurpose
Slate Query Web ServicesPolls Slate's Query Web Services API for student records (8.1).
Slate Source Format APIReceives student records pushed by Slate's Source Format API (8.1).
Microsoft Entra IDProvisions to Microsoft Entra ID via the Microsoft Graph API (8.2).
On-Prem AgentReaches on-prem AD over LDAP through the on-prem Agent (8.3).
Google WorkspaceProvisions to Google Workspace for Education via the Admin SDK (8.6).
SISReads and writes the Student Information System through an Agent SIS profile (8.7).
SQL ServerReads and writes tables in an on-campus SQL Server database through an Agent SQL profile (8.9).
SMTPSends email from workflow Email steps (8.8).
Twilio SMSSends text messages from workflow SMS steps (8.8).
Internal FormLets workflows read and update submissions of your OnboardConnect forms (8.10). No credentials needed.

8.1 Slate connection types

Two Slate connection types are available. Configure at least one from Connections → Add Connection:

8.2 Microsoft Entra ID connection

Connect to Microsoft Entra ID via the Microsoft Graph API. Required fields: Tenant ID, Client ID, Client Secret (from a Microsoft Entra app registration with User.ReadWrite.All and GroupMember.ReadWrite.All permissions).

Connections can be marked as Active Connection — when enabled, this connection becomes available for directory search and user actions in Search Settings. Active connections display a teal "Active" badge on the connection card.

8.3 On-Prem Agent connection

An On-Prem Agent connection points at an installed Agent; the LDAP server, bind account and base DN are configured on the Agent itself (see Active Directory / LDAP). The Agent must be installed first — see On-Premise Agents.

Default and disable OUs for the connection are set in Record Management → Active Connections: the OU list (one per line — new accounts go to the first, searches cover every line) and the Disable OU. A workflow step's own OU (static or from a field) takes precedence over the connection's default — see 10.7 Account placement (OU).

Like Microsoft Entra ID, On-Prem Agent connections can be marked as Active Connection to enable directory search and user actions.

8.4 Active Connection flag

The Active Connection toggle appears on Microsoft Entra ID and On-Prem Agent connections. When enabled:

Multiple connections can handle Search simultaneously. All other actions (Activate/Deactivate, Password Reset, Security Groups, Distribution Lists) are exclusive — only one connection can be assigned each action at a time.

8.5 Connection tile layout

Every connection on the Connections page renders as a tile with the same structure, regardless of type. From top to bottom:

Click Test on any tile to run an immediate health check; the health line and timestamp update in place.

What Test verifies. For Microsoft Entra ID and On-Prem Agent connections, the Test passes when the AD bind succeeds — even if the configured default search base / OU isn't found. A missing OU is a search-scope concern, validated when an actual search runs, not a bind failure. A genuine bind, credential, or connectivity failure still fails the Test. If an OU isn't found, the error directs you to Record Management → Active Connections to verify the OU.

8.6 Google Workspace connection

Connect to Google Workspace for Education through the Google Admin SDK. OnboardConnect authenticates as a service account with domain-wide delegation, so no individual admin password is stored.

  1. In the Google Admin console, create (or select) a service account and enable domain-wide delegation, authorizing the Admin SDK scopes for users and groups.
  2. In OnboardConnect, go to Connections → Add Connection → Google Workspace.
  3. Provide the service account JSON key, the admin email to impersonate (a Workspace super-admin), and your primary domain.
  4. Click Test to verify the Admin SDK responds, then save.

Once connected, Google Workspace steps (Create, Update, Activate, Suspend, Set Password, Groups) become available in the workflow builder.

8.7 SIS connection

A SIS connection lets workflows read from and write back to your Student Information System. To keep SIS credentials on campus, the connection does not hold them — instead it points at an on-prem Agent and a SIS profile defined on that agent.

  1. On the on-prem Agent, add a SIS profile (Agent Setup → SIS Profiles, see 18.6). For Ellucian Ethos (Banner / Colleague) the profile holds only the Auth URL and the API Key; for PeopleSoft and Workday it holds the base URL and that system's credentials.
  2. In OnboardConnect, go to Connections → Add Connection → SIS.
  3. Select the Agent, choose the SIS profile exposed by that agent, and confirm the vendor.
  4. Click Test — the agent signs in to the SIS with its local profile — then save.
Credentials stay on campus. The portal stores only the agent reference, profile name, and vendor. The API key and other credentials live in the agent's local SIS profile and never leave your network.
One connection, many actions. For Ethos, the connection only signs in. Where to read or write — the Endpoint URL, e.g. https://integrate.elluciancloud.com/api/persons — is set on each SIS Read / SIS Upsert action, so the same connection serves any number of actions in any number of workflows (see Workflow Action Catalog → Student Information System).

8.8 Notification connections (SMTP, Twilio SMS)

Notification connections back the workflow Notifications steps. They are added the same way as other connections and selected on the relevant step.

8.9 SQL Server connection

A SQL Server connection lets workflows create, read, update and delete rows in a Microsoft SQL Server database on campus — for example, to write each new student into a local reporting table. Like SIS, the connection holds no credentials: it points at an on-prem Agent and a SQL profile defined on that agent.

  1. On the on-prem Agent, add a SQL profile (Agent Setup → SQL Profiles, see 18.7) with the server, database and sign-in.
  2. In OnboardConnect, go to Connections → Add Connection → SQL Server.
  3. Select the Agent and the database (the agent's SQL profile).
  4. Click Test — the agent signs in to SQL Server with that profile — then save.

The table and columns are chosen on each workflow action, not on the connection, so one connection serves every table the profile may reach.

How statements are built. The cloud never sends SQL. Each action sends a description (table, columns, values, filters); the agent checks every table and column name against the database's own catalog and sends every value as a typed parameter. Only = filters are used, an update or delete without a filter must be confirmed on the action, and a read returns at most 5,000 rows.

8.10 Internal Form connection

Add Connections → Add Connection → Internal Form once. It needs no credentials: workflows use it to read submissions of your Internal Forms (Form Read) and write values back to them (Form Update). The form itself is picked on each workflow step, so one connection serves every form.

9. Search Settings

Search Settings lets administrators define the entire directory search experience for their institution. Changes here affect what IT staff see when searching for students and which AD connections handle user actions.

Permission required: Search Settings is only visible to users with the Admin or Owner role.

9.1 Active Connections tab

Lists all Microsoft Entra ID and On-Prem Agent connections that have the Active Connection flag enabled. Select a connection from the left panel to configure its allowed actions in the right panel. The page automatically selects the first connection that already has actions configured when it loads.

For each connection, check the actions it should handle:

For an On-Prem Agent connection, two OU boxes appear: OU (Organizational Unit) — one OU per line; directory reads search every listed OU (where new accounts are created is set on each workflow's On-Prem Create step) — and the Disable OU, where deactivated accounts are moved (required when the connection performs Activate / Deactivate).

The Searchable Attributes, List Columns, and Detail Views tabs are locked until at least one connection has Search enabled. If no connections appear in this tab, go to Connections and enable the Active Connection toggle on at least one Microsoft Entra ID or On-Prem Agent connection.

9.2 Searchable Attributes tab

Lists all available AD attributes from active connections, grouped by connection name. Check the attributes IT staff should be able to search by. For each checked attribute, enter a user-friendly label (e.g., "Display Name" instead of "displayName").

Microsoft Entra ID provides attributes including: displayName, mail, userPrincipalName, sAMAccountName, givenName, surname, department, title, and more. On-Prem LDAP provides attributes including: cn, sAMAccountName, mail, givenName, sn, department, title, distinguishedName, and more.

If an attribute your institution uses isn't surfaced by the agent's schema sync, click Add Attribute (next to Sync Agent Attributes) to add it manually. The dialog asks for the LDAP attribute name, a display label, and a type. Once added, the attribute becomes selectable across Searchable Attributes, List Columns, and Detail Views.

Sync is non-destructive. Manually-added attributes and any labels you have edited are preserved across a Sync Agent Attributes — the sync merges with the existing catalog rather than replacing it.

9.3 List Columns tab

Defines which attributes appear as columns in the student search results list. Use the Add Column picker to add attributes from your checked searchable attributes. For each column:

9.4 Detail Views tab

Configures what IT staff see when they click a student in the search results:

Click Save Settings to apply all changes across all four tabs.

10. Provision Rules

Provision Rules (sidebar, Provisioning group) defines how accounts are built — username format, password policy, and security-group and distribution-list membership. Rules are kept in named rule sets, so students, staff and faculty can each get their own. Workflow steps whose username, password, groups or lists come From provision rule — the default on new steps — use them.

Formerly Settings — User Provision. Username format, password policy, and group and distribution-list rules all live here now, OU placement is set on each workflow step (10.7), and notifications are workflow steps (Email Notify, SMS, Chat) or Alerts. There is no separate provisioning settings page.
Permission required: seeing Provision Rules needs the role permission Provision Rules → view; changing rules needs configure. Admins have both.

10.1 Rule sets

The bar at the top of the page lists your rule sets as chips — Students (default) plus any you add — and shows Editing: <set> for the selected one. Everything on the tabs below belongs to the selected set.

Changes save automatically (the status next to Save shows when); Save saves immediately.

10.2 Username Format tab

Define the template used to generate usernames for new accounts. Use {field_name} tokens; the workflow step maps which of its fields fill {first_name}, {last_name}, {middle_name} and {student_id}:

{first_name[0]}{last_name}          → jsmith
{first_name}.{last_name}            → john.smith
{first_name}.{last_name}{grad_year} → john.smith25
{student_id}                        → 1234567

The [0] syntax extracts just the first character of a field ([-N] takes the last N characters). A live preview shows how the template renders using sample data.

Additional options:

How collisions are numbered. Each retry starts again from the original username, so numbers count up rather than pile up: john.smith → john.smith2 → john.smith3 (not john.smith23). Grow first-name prefix adds first-name letters until the whole first name is used, then continues with 2, 3, 4…. On-Prem Create tries up to 12 alternatives before the record fails.

10.3 Password Policy tab

The first choice on the tab is whose rules apply:

With the directory's policy: Active Directory applies your domain password policy (length, complexity and history). Microsoft Entra ID applies Microsoft's policy: 8 or more characters, 3 of 4 character types, and no banned passwords. If your domain requires more than 16 characters, new-account rows fail with a message saying the password didn't meet the domain's policy; in that case use OnboardConnect password rules with a longer length instead.

Google Workspace: Google doesn't check passwords set through its API against its strength policy. In the Google Admin console, turn on Enforce password policy at next sign-in so that the password each user chooses at first sign-in has to meet your Google policy.

10.4 Security Group tab

Define which security groups an account is added to. Rules are additive — every matching rule is applied, so an account can land in several groups. Each rule has a label, an Active switch, an optional condition, and one or more group names (on-prem: Distinguished Names; Entra: group names; Google: group emails). Reorder rules with the arrows.

10.5 Distribution List tab

Same structure as Security Group, but for mail-enabled distribution lists. Rules are additive and evaluated independently from security group rules. Distribution lists apply only to On-Prem Agent (on-prem Active Directory) connections; Microsoft Entra ID ignores these rules.

10.6 Rule sets in workflow steps

Every Create step, and any Set Password, Security Groups or Distribution Lists step whose source is From provision rule (recommended) — the default for new steps — shows a Provision Rule Set section. Its Rule set choice:

ChoiceWhat it does
Default (Students)Uses the default rule set.
A specific rule setUses the set chosen in Use rule set for every record.
Chosen by a fieldPicks the set per record: choose the Field, then map each field value to a rule set (Field value → Rule set). When the records come from a Form Read, a dropdown or checkbox field's options are listed for you — dropdown options by their label, but the stored value is what is saved and matched. Records whose value is empty or not mapped use the default rule set.

How a field value is matched. The record's stored value is compared with the mapped values exactly first, then with spaces trimmed from both ends, then ignoring upper / lower case — so staff and STAFF both match a mapping for Staff. A form dropdown sends its value, not its label: for an option Staff | OU=Staff,OU=People,DC=company,DC=edu the value matched is the OU path, which the picker handles for you when it lists the options.

Missing-field warning. On Security Groups and Distribution Lists steps, the workflow editor warns when a rule's condition or {field} group name uses a field that no earlier step passes to this step — e.g. Rule "Staff groups" uses department, which no earlier step passes to this step. Saving isn't blocked, but those rules won't match (and {field} names are skipped) for records without the field. Add the field to an earlier step's output fields (for Form Read, tick it in its Output section). With Chosen by a field, only the rule sets you have mapped are checked; with the default or a specific set, only that set.

10.7 Account placement (OU)

Provision Rules doesn't hold OU placement rules. Where an on-prem account is created or moved is set on the workflow step: On-Prem Create → Target OU (a static OU, or a per-record OU from a field with an optional Fallback OU — see On-Prem Create) and On-Prem Move OU → Destination OU (a static OU, or a per-record OU from a field with an optional fallback). See the Action Catalog and Staff & faculty accounts.

11. Audit Log

The Audit Log is an immutable record of every provisioning action and administrative change in your OnboardConnect account.

11.1 What is logged

11.2 Reading log entries

Each entry shows:

FieldDescription
TimestampUTC timestamp of the event
ActorWho triggered the action: a portal user, the system, or the Agent
Event typeCategory (provisioning, admin, connection, auth)
StudentThe affected student (for provisioning events)
ActionWhat was done (created, disabled, workflow updated, etc.)
ResultSuccess or failure with error message if applicable
IP addressSource IP for admin actions

11.3 Filtering and searching

Filter the audit log by date range, actor, event type, student name/ID, and result (success/failure). Export filtered results to CSV for compliance reporting.

Retention: Audit log entries are retained for 2 years by default. Contact support to discuss extended retention options for compliance requirements.

12. Reports

The Reports section provides pre-built reports and lets you save custom filtered views.

12.1 Built-in reports

ReportDescription
Disabled UsersAll student accounts currently disabled, with disable date and triggering event
New AD UsersAccounts created in AD within the selected date range
New Entra UsersAccounts created in Microsoft Entra ID within the selected date range
Slate AcceptsStudents provisioned from Slate application-decision events
Form SubmissionsOne row per submission of a chosen internal form: when and by whom it was submitted, every field by its name (dropdowns show the option label), whether a workflow has processed it, and the last workflow that read it. Filter by date range and status (All, Awaiting processing, Processed). Needs the Forms view permission; up to 5,000 rows, exportable to CSV and savable like other reports.

12.2 Saved reports

Apply filters to any report and click Save Report to save your filter configuration. Saved reports appear in the Saved tab and can be re-run at any time or scheduled for periodic email delivery.

12.3 Exporting

Every report can be exported as CSV. Click Export CSV at the top of any report view.

13. Alerts

The Alerts module sends proactive email notifications to designated portal users when critical system events occur. Navigate to Alerts in the left sidebar under the Reporting group.

13.1 Alert types

AlertTrigger conditionEmail cooldown
Provisioning Job FailuresA provisioning job exhausts all retry attempts and cannot be recovered automatically1 hour
Agent Goes OfflineAn on-premise Agent stops reporting heartbeats for more than 15 minutes4 hours
Cooldown periods prevent alert flooding. Once an alert fires for a given alert type, it will not fire again until the cooldown window expires — even if the triggering condition persists. This prevents email storms during extended incidents.

13.2 Enabling and disabling alert types

Each alert type is toggled independently using the on/off switch in the Alerts page. All three alerts are enabled by default when preferences are first saved.

13.3 Configuring recipients

By default, when no specific recipients are selected, all active portal users receive alert emails. To restrict notifications to specific team members:

  1. Go to Alerts in the sidebar.
  2. Scroll to the Alert Recipients section.
  3. Check the boxes next to the users who should receive alerts.
  4. Click Save Preferences.
Invited users are excluded. Only users with an Active status appear in the recipient list. Pending invitations are not shown.

13.4 Permissions

Viewing the Alerts page requires the alerts.view permission. Saving changes requires alerts.configure. These permissions can be assigned to custom roles from Settings → Users & Roles → Roles.

14. Usage

The Plan & Usage page shows your plan, the enrollment band it covers, and your provisioning activity. There is no provisioning limit — your plan is based on student enrollment, not on how many accounts you create.

Reading the Plan & Usage page

ItemDescription
PlanYour current plan (Essentials, Standard, Growth, Professional, or Enterprise)
Enrollment bandThe student enrollment range your plan covers
Enrollment on fileYour institution's student enrollment headcount (latest IPEDS fall enrollment) used to place you in a plan
Created this yearAccounts created since January 1 of the current year — shown for reference only
No caps, no overages. Account creations, updates, disables, re-enables, and password resets are all unlimited on every plan.

If your enrollment grows more than 5% past the top of your plan's band, your plan moves to the next tier at renewal. To update the enrollment on file or ask about your plan, contact solutions@zentrosoft.com.

15. Settings — Users & Roles

15.1 Inviting users

  1. Go to Settings → Users & Roles.
  2. Click Invite User.
  3. Enter the user's work email and select their role.
  4. Click Send Invite. The user receives an email with a setup link valid for 48 hours.

15.2 Managing existing users

From the user list, you can:

15.3 Custom roles

In addition to the built-in roles, Owners can create custom roles with fine-grained permission sets. Click New Role, name it, and toggle individual permissions on or off.

16. Settings — SSO

OnboardConnect supports OpenID Connect (OIDC) single sign-on for staff portal logins. SSO is configured per institution and allows your team to authenticate using your existing identity provider (Okta, Microsoft Entra ID, Auth0, Keycloak, or any other OIDC-compliant IdP).

16.1 Configure OIDC SSO

  1. Go to Settings → SSO.
  2. In the OIDC Configuration section, enter the Discovery URL — this is the /.well-known/openid-configuration endpoint from your identity provider (e.g., https://login.company.edu/.well-known/openid-configuration).
  3. Enter the Client ID assigned to OnboardConnect in your IdP application.
  4. Enter the Client Secret from your IdP application.
  5. In your identity provider, register the Callback / Redirect URI shown in the IdP Setup section of the SSO settings page.
  6. Click Save OIDC Settings.
  7. Click Test SSO Login to verify the configuration before enabling.
  8. Toggle Enable / Disable to activate SSO.
Where to find the Discovery URL: In Okta, it is under Security → API → Authorization Servers → default → Metadata URI. In Microsoft Entra ID, it is https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration.
Keep a backup admin account. Before enabling SSO, ensure at least one Owner account exists with a local password in case SSO configuration needs troubleshooting. Once SSO is enabled, users without a matching IdP account will be unable to log in.

16.2 SSO Login URL

After saving your OIDC settings, the IdP Setup section of the SSO page displays an SSO Login URL field. This is the direct URL that initiates the SSO login flow for your institution.

SSO is initiated only via this URL. There is no "Sign in with SSO" button on the OnboardConnect login page. Users must navigate to the SSO Login URL directly to start the SSO flow.

17. Settings — Developer

17.1 API keys

Generate API keys to authenticate requests to the OnboardConnect REST API from your own scripts or systems.

  1. Go to Settings → Developer.
  2. Click New API Key, name it descriptively (e.g., "Banner integration").
  3. Copy the key immediately — it will not be shown again.
Treat API keys like passwords. Store them in a secrets manager, never in source code or email.

17.2 Webhooks

Configure an HTTPS endpoint to receive real-time event notifications. OnboardConnect sends a POST request with a JSON payload for every provisioning event.

Available webhook events:

Payloads are signed with an HMAC-SHA256 signature using your webhook secret. Verify the X-OC-Signature header on every received request.

17.3 Webhook signature verification

// Node.js example
const crypto = require('crypto');
const signature = req.headers['x-oc-signature'];
const body = req.rawBody; // raw JSON string
const expected = crypto
  .createHmac('sha256', process.env.OC_WEBHOOK_SECRET)
  .update(body)
  .digest('hex');
if (signature !== expected) return res.status(401).end();

18. Integration — Active Directory / LDAP

OnboardConnect connects to your on-premise AD through the OnboardConnect Agent — a lightweight service that runs inside your network and receives encrypted provisioning instructions from the cloud.

18.1 Install the Agent

  1. On the target Windows Server machine, open PowerShell as Administrator and run npm.cmd install -g onboardconnect-agent --loglevel=error.
  2. In the portal, go to Connections → Add Connection → On-Prem Agent and click Generate Setup Token. Copy the one-time token (valid 30 minutes).
  3. Back in PowerShell, run oc-agent setup and paste the setup token when prompted. The wizard installs the Windows service and starts the agent.
  4. Open a browser on the agent host machine and navigate to http://localhost:7432. Log in using the agent token shown in the PowerShell console output.
  5. Go to the Setup tab in the Agent Management UI and configure your LDAP settings (server host/port, bind DN, base DN). Use port 636 (LDAPS) where you can — see 18.5.
  6. Return to the portal under Connections and confirm the agent connection card shows Connected.
Install the Agent screen as an app. At http://localhost:7432, click the install icon in the browser's address bar (Edge / Chrome) to get an OC Agent window and Start-menu entry. Its sidebar badge shows whether the agent serves Stage or Production. If the agent service is stopped, the app says so and shows how to start it.
Why npm.cmd? Windows PowerShell shows npm's routine warnings (for example "install-scripts … not yet covered by allowScripts") as a red NativeCommandError block, even though the install succeeded. Calling npm.cmd with --loglevel=error avoids that. If you already ran plain npm install and saw "added … packages", the install worked — you can ignore the red text.

18.2 Agent requirements

The Agent is a Node.js application published on npm as onboardconnect-agent. There is no .NET or other runtime to install.

RequirementDetails
Operating systemWindows Server 2016 or later (or Windows 10 / 11) — the Agent runs as a Windows service. Linux with systemd is also supported — the Agent runs as the oc-agent systemd service.
Node.jsVersion 18 or later, with npm. The setup wizard checks the version and stops if it is older.
Install rightsAn elevated (Administrator) PowerShell on Windows, or sudo/root on Linux, to install the package globally and register the service.
AD permissionsA service account with the rights your workflows need in the target OUs — create, modify and (if used) delete user objects, reset passwords, manage group membership. See 18.4.
NetworkOutbound HTTPS / secure WebSocket (port 443) to the OnboardConnect API and relay addresses carried in your setup token, and to the npm registry for installs and updates. LDAP / LDAPS (389 / 636) from the Agent to your domain controllers. Slate file transfers and SIS / SQL profiles also need the Agent to reach those systems. No inbound ports are needed.
Windows-only features. SQL Server profiles that use Windows (integrated) authentication need a Windows Agent.

18.3 High availability

Install the Agent on two servers for redundancy. OnboardConnect automatically load-balances and fails over between healthy agents. Both agents must use the same tenant token.

18.4 AD service account permissions

The Agent runs as a Windows service under a dedicated AD service account. Grant the account Create, Delete, Modify permissions on the target OUs, and Reset Password rights if you use OnboardConnect password resets.

18.5 LDAP authentication modes

On the Setup tab of the Agent Management UI, the LDAP configuration offers two Authentication Modes:

ModeHow the agent binds
Explicit CredentialsBind with a service-account username and password that you enter and store in the agent configuration.
Domain Service AccountNot available yet Intended to sign in as the Windows account the agent service runs as, with no stored password. The agent can't do that Windows sign-in to LDAP yet, so Active Directory treats the connection as anonymous and refuses provisioning. Test Connection and the Access Check report this instead of "Connected". Use Explicit Credentials.
LDAP Username must include the domain. With Explicit Credentials, enter the service account as svc_onboard@company.edu (its UPN) or COMPANY\svc_onboard (NetBIOS domain and name), or its full DN (CN=…,OU=…,DC=company,DC=edu). A bare name such as svc_onboard is rejected by Active Directory with error 52e ("invalid credentials") even when the password is right. The ? next to the field in the Agent UI lists these formats.
SQL Server is different. A SQL profile's Domain service account sign-in (18.7) does work — it uses Windows' own SQL client, which can sign in as the service's account.
Editing an existing LDAP configuration: the password field is optional when you edit a saved configuration. The stored secret is redacted to blank on load, so leaving the password blank on Save keeps the current password — only enter a value to change it. The field placeholder reflects this ("Leave blank to keep current password"). The saved password is only reused for the same host and port: change either one, or turn on Allow unencrypted LDAP, and the agent asks for the password again, so it can never be sent to a server it wasn't saved for.
Encrypted LDAP. The agent encrypts every LDAP connection: LDAPS on port 636, StartTLS on any other port. If StartTLS can't be set up, the agent does not send the password and Test Connection says why. The domain controller's certificate must be trusted by the agent's server — a certificate from your domain's own CA (AD CS) is. Only for a server that can't do TLS at all, tick Allow unencrypted LDAP; the password then crosses the network in clear text.

Choosing the LDAP port

The Port field's hint reads 636 = LDAPS (recommended) · 389 = LDAP with StartTLS; the ? next to it explains:

PortUse
636 — LDAPSRecommended. Encrypted from the start; needed to set passwords unless 389 has StartTLS.
389 — LDAP with StartTLSThe agent encrypts the connection with StartTLS, which needs a certificate on the domain controller that the agent's server trusts.
3268 / 3269 — Global CatalogDon't use. The Global Catalog is read-only and holds only some attributes, so creates, updates and password changes fail.

The domain controller's firewall must allow the agent's server on the port you choose.

Buttons stay disabled until the form is complete. On every section of the Setup tab — LDAP, File Paths, SIS Profiles and SQL Profiles — Save and Test Connection become available only once the fields that section needs are filled in. Each section has its Test Connection button beside Save, and it tests what is in the form, before you save.

18.6 SIS profiles (on the Agent)

Setup tab → SIS Profiles. A SIS profile holds the credentials for one Student Information System; the portal's SIS connection (8.7) references it by Profile Id. Credentials are stored encrypted on the agent server and never leave campus.

VendorFields
Ellucian Ethos (Banner / Colleague)Auth URL — where the API key is exchanged for a token, e.g. https://integrate.elluciancloud.com/auth — and the API Key. Where to read or write is set on each workflow action (Endpoint URL).
PeopleSoftBase URL, username and password (Integration Broker).
WorkdayBase URL, client id, client secret, token URL and tenant.

Test Connection signs in with the form's values — for Ethos, it gets a token from the Auth URL with the API key.

18.7 SQL profiles (on the Agent)

Setup tab → SQL Profiles. A SQL profile is one database the agent may read and write; the portal's SQL Server connection (8.9) references it. Fields: Profile Id, Server (host name, or host\instance for a named instance), optional Port (blank for 1433 or a named instance), Database, Sign-in, Encrypt the connection (on by default), Trust the server's certificate (only for a self-signed certificate) and optional Allowed tables (one schema.table per line; blank allows every table the login can see).

Sign-inHow the agent signs in to SQL Server
SQL Server loginA SQL login's username and password, stored encrypted on the agent.
Windows domain accountA domain account (e.g. COMPANY \ svc_oc_sql) and its password, stored encrypted on the agent.
Domain service accountThe Windows account the OnboardConnect Agent service runs as — no username or password is stored. By default that is the server's computer account (COMPANY\SERVERNAME$); to use a domain or group-managed service account, set it on the service's Log On tab in Services and restart the service. Give that account a SQL Server login with rights to the database.

Test Connection signs in and reports the database and the account SQL Server saw — useful to confirm which Windows account a Domain service account profile uses.

Least privilege. Give the SQL login rights only to the tables workflows need; the login's own permissions always apply on top of the profile's Allowed tables.

19. Integration — Slate CRM

OnboardConnect integrates with Technolutions Slate through two connection types. Choose whichever your institution's Slate configuration supports.

19.1 Query Web Services

OnboardConnect polls Slate's Query Web Services API on a schedule and retrieves student records directly.

  1. Go to Connections → Add Connection → Slate Query Web Services.
  2. Enter your Slate instance URL (e.g., https://apply.company.edu).
  3. Enter the Query Key from your Slate Query Web Services configuration.
  4. Enter the Slate credentials (username/password with Query Web Services access).
  5. Set the polling schedule.
  6. Click Test Connection to verify access and preview returned records.
  7. Toggle Active to enable scheduled polling.

19.2 Source Format API

Slate pushes data to OnboardConnect via the Source Format API on your defined schedule or trigger.

  1. Go to Connections → Add Connection → Slate Source Format API.
  2. Copy the OnboardConnect Source Format endpoint URL and shared secret.
  3. In Slate, configure the Source Format to push to the OnboardConnect endpoint URL using the shared secret for signature verification.
  4. Map the Source Format fields to OnboardConnect student fields in the connection form.
  5. Click Save. OnboardConnect will begin accepting data as soon as Slate pushes it.

19.3 Field mappings

Each Slate connection type includes a field mapping configuration. Map Slate field names to the standard OnboardConnect student fields (first_name, last_name, student_id, email, enrollment_status, program, campus, etc.). You can also map custom Slate fields to use them in Provision Rules group conditions.

20. On-Premise Agents

The OnboardConnect Agent is a lightweight Windows service that bridges the cloud platform with your on-premise Active Directory environment.

20.1 Viewing agent status

There are two places to check agent status:

If an agent stops sending heartbeats for more than 15 minutes, the system marks it stale and sends an Agent Goes Offline email to the configured alert recipients (see Alerts). The email identifies the affected agent by its friendly name — the same name shown on the Agents list — so administrators can immediately tell which Windows Server stopped reporting without having to look up an internal identifier.

20.2 Pausing and resuming the agent

You can temporarily pause the agent from the Agent Management UI at http://localhost:7432. While paused, the agent stays connected but does not execute any commands — they remain queued and will run when you resume. The portal will show the agent as "Connected — paused" and will display a clear error if a workflow attempts to dispatch a command while the agent is paused.

20.3 Agent logs

On the agent host machine, logs are written to %USERPROFILE%\.oc-agent\logs\. Log rotation happens daily with a 30-day retention. You can also view recent requests directly in the Agent Management UI under the Requests tab.

20.4 Updating the agent

On startup, the agent queries the npm registry to check whether a newer version of onboardconnect-agent is available. If a newer version exists, the agent logs a warning and prints an upgrade banner to the console and log file — it does not download or restart automatically.

The portal shows Update available next to an on-prem connection whose agent is behind. To update the agent to the latest version, open PowerShell as Administrator on the agent host and run:

  1. Stop the service: Stop-Service -DisplayName "OnboardConnect Agent"
  2. Install the latest version: npm.cmd install -g onboardconnect-agent@latest --loglevel=error
  3. Set the service up again and start it: onboardconnect-agent service

Settings, credentials and SIS / SQL Server profiles are kept — they live in C:\ProgramData\OnboardConnect\, which the upgrade never touches. Do not run setup again: setup re-registers the agent and replaces its credentials. The portal shows the new version within a minute. The same three commands are under Connections → your on-prem connection → Upgrade Agent.

Why the third step: the upgrade replaces the agent's program folder, and on older installs that folder also held the Windows service's own files, so the service can't start again on its own. onboardconnect-agent service re-creates it under C:\ProgramData\OnboardConnect\service\, where later upgrades leave it alone. It is safe to run any time.

Use the display name as shown. The service is registered internally as onboardconnectagent.exe, and in PowerShell sc is an alias for Set-Content — use sc.exe if you prefer the service controller.

20.5 Revoking an agent

To decommission an agent, click Revoke from the agent list in the portal. The agent will immediately stop accepting provisioning jobs. Then uninstall the agent from the host machine (see 20.6).

20.6 Uninstalling the agent

To cleanly remove the agent from a server:

  1. Open PowerShell as Administrator on the agent host machine.
  2. Run onboardconnect-agent uninstall and type YES when prompted.
  3. The wizard stops the Windows service, removes the service registration, and deletes the config directory (C:\ProgramData\OnboardConnect\). You can optionally also remove log files and the npm package.
  4. Return to the portal (Settings → Agents) and click Revoke on the agent card to clean up the cloud registration.

Alternatively, run the included scripts\uninstall.ps1 script directly from the agent installation directory. It accepts -KeepLogs and -KeepPackage flags.

20.7 Allowed Command Types

The Settings tab at http://localhost:7432 lets administrators control exactly which operations this agent instance can execute. Changes take effect on the next command — no restart needed.

Every action the agent can run is listed, in eight groups:

GroupCommands
User LifecycleCreate User, Update User, Disable User, Deactivate User, Activate User, Delete User (marked Destructive)
PasswordsSet Password, Reset Password
Group MembershipSecurity Groups, Distribution Lists
Directory QueriesSearch Users, Read Users, Read Groups, Get Schema, Move OU
File I/ORead File, Write File, Download File, Upload File (Slate file transfer)
SIS WritebackSIS Call — SIS Read and SIS Upsert actions
SQL ServerSQL Call — SQL Create, Read, Update and Delete actions
Agent ServiceRestart Service
New actions after an upgrade. A saved list remembers which actions were on screen when it was saved. Actions added to the agent later are enabled by default, so on a list saved earlier they are switched on after upgrading. Anything you switched off stays off. SIS Call, SQL Call and the file-transfer actions still only run once a SIS profile, SQL profile or file path is configured, unless you enable them here explicitly.

The Group Membership commands let the agent apply security-group and distribution-list memberships — both those assigned by workflows and those triggered manually from Directory Search. Like the others, each is an individual toggle and is enabled by default.

Each command can be individually enabled or disabled using a toggle. Each group also has an Enable all / Disable all shortcut. Disabling a command type causes the agent to reject any incoming command of that type before any AD action is taken, and returns a clear error message to the portal. With no list saved, every command is enabled.

After adjusting the allowlist, click Save Command Filter. The agent reads the list on every command, so the change applies to the next one without restarting the service.

20.8 Command History

The Requests tab at http://localhost:7432 shows a real-time log of every command the agent has received during the current session. Columns:

ColumnDescription
TimeWhen the command was received (HH:MM:SS)
Command TypeHuman-readable label (e.g., "Create User", "Search Users")
StatusPending, Success, Error, or Skipped
DurationExecution time in milliseconds or seconds
Dry RunFlagged if the command was a test run; dash if it was a live execution
ErrorExpanded error message for failed commands; click to reveal the full text

History is kept in memory for the current session only and clears when the agent service restarts. The list polls for new entries automatically every 30 seconds, and also refreshes immediately whenever a new status event arrives.

Log files for older history: Persistent command logs are written to %USERPROFILE%\.oc-agent\logs\. The Requests tab shows only the most recent 100 entries from the current session.

20.9 Service Account Access Check

The Settings tab includes an Access Check tool that verifies the Windows service account has all required permissions before running provisioning jobs. Click Run Access Check to test the following:

CheckWhat is verified
File ReadWhether the service account can read from the configured File Read Path. The path is shown below the check label.
File WriteWhether the service account can write to the configured File Write Path. The path is shown below the check label.
Active Directory (LDAP)Whether the service account can open a connection to the configured LDAP server. Displays connection latency in milliseconds if successful.
SIS profilesOne row per saved SIS profile: whether the agent can sign in to that SIS with it (for Ethos, get a token from the Auth URL with the API key) — the same test as the profile's Test Connection button.
SQL Server profilesOne row per saved SQL profile: whether the agent can sign in to that database, shown as <database> as <login> — for a Domain service account profile, the login is the Windows account the service runs as.

With no SIS or SQL profiles saved, those rows read Not configured and do not count as a failure.

The check also displays the Windows account name under which the agent service is currently running. Run this check after initial setup or after changing service account credentials to confirm all permissions are in place before the first live provisioning job.

20.10 Signing in / session

When you open the Agent Management UI at http://localhost:7432, it validates the saved access token against the running agent. If the stored token is invalid, expired, or revoked — the agent answers with a 401 — the UI automatically returns you to the login screen so you can paste a fresh token.

A token entered for an agent that is merely unreachable (for example, the service is stopped) is not discarded; the UI keeps it and simply reports the agent as offline. Get the current token from the agent console output, as described in 20.1.

21. Plans

Plans are based on your institution's total student enrollment headcount, as reported in the latest IPEDS fall enrollment.

PlanStudent enrollment
EssentialsUp to 2,500
Standard2,501 – 5,000
Growth5,001 – 10,000
Professional10,001 – 25,000
Enterprise25,001 and above
All features included in every plan. Every plan includes the full platform — unlimited workflow rules, connections, audit log access, reports, API calls, portal users, self-service password reset, and custom roles. Plans differ only by enrollment band.

There is no provisioning cap and no overage: account creations, updates, disables, re-enables, and password resets are always unlimited.

Renewal true-up. If your enrollment grows more than 5% past the top of your plan's band, your plan moves to the next tier at renewal.

For questions about your plan, contact solutions@zentrosoft.com.

22. API & Webhooks

OnboardConnect exposes a REST API at https://api.onboardconnectapp.com/api/tenant/. All requests must include an API key in the Authorization header.

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

22.1 Common endpoints

MethodEndpointDescription
GET/studentsList students with optional filters
GET/students/:idGet a single student record
POST/students/:id/reprovisionTrigger reprovisioning for a student
POST/students/:id/disableDisable a student's account
GET/audit-logQuery the audit log
GET/usageGet current usage stats
GET/agentsList on-premise agents and their status

Full API reference documentation is available at docs.onboardconnectapp.com/api.

Webhook configuration: Outbound webhook endpoints, events, payload format, and HMAC signature verification are configured from Settings → Developer. See Settings — Developer for complete webhook documentation.

23. FAQ

What happens if the Agent goes offline?

Provisioning jobs queue up in the cloud. When the Agent comes back online, it processes all queued jobs in order. No jobs are lost. You will receive an email alert if the Agent is offline for more than 15 minutes. Any workflow action triggered while the agent is offline will return a clear error: "Agent is offline" — no silent failures.

What does the "paused" state mean?

An administrator can pause the Agent from the Agent Management UI (http://localhost:7432) without stopping the service. While paused, the agent stays connected to the cloud but holds all incoming commands in a queue without executing them. Any workflow that tries to send a command while the agent is paused receives an error message explaining that the agent is paused and how to resume it. The portal displays a yellow "Connected — paused" indicator in the agent status check.

Does OnboardConnect store student passwords?

No. Passwords are generated momentarily during the provisioning job and set directly in AD via the Agent. OnboardConnect never persists password values.

Can I use OnboardConnect with Microsoft Entra ID only (no on-prem AD)?

Yes. Microsoft Entra ID provisioning uses the Microsoft Graph API directly from the OnboardConnect cloud — no Agent installation required. Select "Microsoft Entra ID" as the connection type in Connections.

Agent commands fail with "rejected the request as expired … clock is ahead"

Every command sent to the Agent carries an expiry time, and the Agent checks it against its own server clock. If that server's clock runs ahead, the Agent treats every command as already expired and rejects it on arrival — so actions fail immediately even though the Agent is online. OnboardConnect measures the offset and reports it, for example: "The OnboardConnect Agent rejected the request as expired because its server's clock is about 95 seconds ahead. Sync the time on the agent's server…"

Fix: sync the time on the Agent's server — run w32tm /resync in an administrator prompt, or point the server at your domain's time source — then try again. A domain-joined server normally keeps time from its domain controller.

The Agent's LDAP test fails with error 52e

Error 52e is Active Directory's "invalid credentials". Besides a wrong password, the most common cause is an LDAP Username without the domain. Enter it as svc_onboard@company.edu or COMPANY\svc_onboard (or the account's full DN), not just svc_onboard. See 18.5.

How do I test a workflow without affecting real accounts?

There is no simulation mode — a run performs its steps for real. Limit the source to a test record (a Slate query or Filter Rows condition that matches only a test applicant, or a test form entry), switch off the steps you are not ready to run, and use a test OU. See Testing a workflow.

24. Support

OnboardConnect includes a built-in support ticket system so your IT team can request help, report issues, and track progress — all without leaving the portal.

24.1 Opening a support ticket

  1. In the portal sidebar, click Support.
  2. Click + New Ticket in the top-right corner.
  3. Enter a concise Subject describing the issue.
  4. Select a Priority:
    • Low — non-urgent question or enhancement request
    • Normal — general issue, no immediate impact on provisioning
    • High — provisioning is degraded or partially broken
    • Urgent — provisioning is completely stopped; production outage
  5. Write your message in the Message field. Include relevant details: affected students, error messages, job IDs from the Audit Log, and steps to reproduce.
  6. Click Submit Ticket. The Zentrosoft support team is notified immediately by email.
What to include in your ticket: Your institution name, a description of the issue and when it started, relevant student IDs or job IDs from the Audit Log, screenshots for UI issues, and your Agent version (visible in Connections → Agents).

24.2 Tracking your tickets

The Support page lists all tickets your institution has submitted, sorted by most recent first. Each ticket shows:

ColumnMeaning
SubjectA brief description of the issue
PriorityLow / Normal / High / Urgent
StatusCurrent state of the ticket (see below)
CreatedWhen the ticket was submitted
Last UpdatedWhen the most recent activity occurred

24.3 Ticket statuses

StatusMeaning
OpenNew ticket — awaiting the support team's first response
In ProgressThe support team has responded and is actively working on the issue
ResolvedThe issue has been addressed; you can reopen by replying
ClosedTicket closed. No further replies are accepted

24.4 Replying to a ticket

Click any ticket row to open the conversation thread. You can read all previous messages and post a reply in the text field at the bottom. Click Send Reply to submit. The support team is notified by email of your reply.

Replies are disabled once a ticket is Closed. To report the same issue again, open a new ticket.

24.5 Notifications

Email notifications are sent automatically:

24.6 Direct email support

You can also reach the Zentrosoft solutions team directly at solutions@zentrosoft.com. For production-impacting incidents, mark your subject line with [URGENT]. Using the in-portal ticket system is preferred as it keeps all communication and context in one place.

25. Self-Service Password Reset

Self-Service Password Reset lets students reset their own institutional password from a branded public portal whose address ends in /<your-slug> — the exact Public Portal URL is shown on the Self-Service page. Identity is verified through a one-time code delivered to the recovery email or phone already recorded on the directory user. The new password is then set directly on the reset connection: through Microsoft Graph for Microsoft Entra ID, or as an encrypted command to the On-Prem Agent.

Disabled by default. The feature ships off for new tenants. An administrator must turn it on in Portal status on the Self-Service page before the public portal becomes reachable.

25.1 Overview

The feature is designed for institutions whose helpdesk is overrun by password reset tickets — particularly at term-start surges. It is intended for end-user student accounts only. Which accounts can use it is controlled by the reset connection's OU scope (25.3.4): on-prem lookups search only the OUs you list there, so staff and administrator accounts kept outside those OUs are never found.

In v1, Self-Service Password Reset is scoped to password resets only. It is not an MFA management portal and does not yet offer username recovery.

25.2 Prerequisites

Before enabling the feature, confirm the following are in place:

Hybrid AD environments. If you run Microsoft Entra Connect and on-prem AD is authoritative, route Password Reset to the on-prem agent connection. Routing to Microsoft Entra ID without password writeback configured will result in the new password being overwritten on the next sync.

25.3 Step-by-step setup

25.3.1 Enable the master toggle

  1. Go to Self-Service (sidebar) — the Self-Service Portal page.
  2. In the Portal status card, turn on the master switch and confirm. (It can't be turned on until the settings below are complete — see 25.7.)
  3. Confirm the institution slug shown at the top of the page (this becomes the path segment in your public URL).

25.3.2 Pick the reset connection

In the Reset connection card, choose the Microsoft Entra ID or On-Prem Agent connection that answers self-service password resets. Only one connection drives self-service at a time; picking a different one replaces the previous selection.

25.3.3 Map recovery email and recovery phone attributes

For the reset connection, map the directory attribute that holds the student's recovery email and the attribute that holds the recovery phone number. Common choices:

ChannelMicrosoft Entra ID attributeOn-Prem AD attribute
Recovery emailotherMails or mailotherMailbox or a custom extension attribute
Recovery phonemobilePhonemobile

If a student has both a recovery email and a recovery phone on file, the public portal lets them choose which channel to use.

25.3.4 Limit which accounts are eligible (OU scope)

For an On-Prem Agent reset connection, enter the student OU(s) in the connection's OU box, one per line (e.g. OU=Students,DC=company,DC=edu). The portal looks the user up only in those OUs, so accounts outside them — administrators, IT staff, service accounts — can't be found or reset. Keep privileged accounts out of the listed OUs.

No group-exclusion list. Earlier versions had an Excluded Groups list; it has been removed (and any saved entries cleared) because OU scoping restricts self-service to the student OUs. Microsoft Entra ID has no OUs, so with an Entra reset connection any user the lookup finds is eligible — use an on-prem reset connection, or Entra's own controls, if privileged cloud accounts must be kept out.

25.3.5 Optional branding

Customize the public portal so end users see your institution, not OnboardConnect:

25.3.6 Save and verify the public URL

  1. Click Save Settings.
  2. Copy the Public Portal URL displayed at the top of the page (it ends in your institution's slug, e.g. …/company).
  3. Open the URL in a private browser window and confirm the branded landing page loads.
  4. Run a test with a non-privileged test account that has a known recovery email or phone on file.

25.4 End-user experience

From the student's perspective, the flow is five steps:

  1. The student opens your Public Portal URL.
  2. They enter their school email address or phone number and complete the Cloudflare Turnstile check.
  3. OnboardConnect resolves the user against the configured connection(s) and sends a one-time code to the recovery email or SMS on file. If both are available, the student picks the channel.
  4. The student enters the code to verify identity.
  5. The student picks a new password that meets the tenant's password policy. OnboardConnect dispatches the reset through the routed connection and shows a confirmation screen.
Masking. The portal masks the recovery channel (e.g., j***@company.edu or +1***-***-4567 — only the first letter of an email and the last four digits of a phone are shown) so an unauthenticated visitor cannot enumerate which contact details are on file for a given account.

25.5 The Reset Log

Every self-service attempt — successful or not — is recorded in the Password Reset Log (sidebar, Reporting group). Filter it by date range (From / To), Status, and a search box for the identifier or user. The table shows:

ColumnDescription
TimeWhen the attempt started
StatusPending, Verified, Success, Failed, Expired or Blocked
IdentifierWhat the student typed
UserThe directory user the lookup matched, if any
ConnectionThe connection that handled the reset
ProofingEmail or SMS, with the masked recovery address or number
AttemptsCode verification attempts used
IPSource IP address
DurationHow long the attempt took

Expand a row for its details — country, user agent, failure reason and, for an on-prem reset, the agent Command ID.

Pattern alert banners

Each time the Reset Log loads, three checks run and show a warning banner when they find something (expand a banner for the list):

CSV export

Click Export CSV above the table to download the log with the current filters applied. Recovery addresses appear masked in the export, as they do on screen.

25.6 Security notes

25.7 Troubleshooting

"Setup will not enable"

The portal can't be enabled until it has what it needs; the Cannot enable self-service yet banner lists what is missing. Check that a Reset connection is chosen (with its OU lines filled in for an on-prem connection), that at least one messaging channel is on with its SMTP or Twilio connection selected, and that the reset connection has the matching recovery email or phone attribute.

"Self-service is not available for this institution"

This message appears on the public portal when the master toggle is off, when the slug in the URL doesn't match a tenant, or when the tenant has been suspended. Confirm the URL spelling and that Self-Service Password Reset is enabled on the Self-Service page (Portal status).

"Code never arrives"

  1. Confirm the recovery email or phone is actually present on the student's directory record using Directory Search.
  2. Go to Connections and verify the messaging connection (Twilio for SMS, Mailgun / SendGrid / Resend for email) is Connected. Click Test Connection.
  3. Check the Password Reset Log entry for the attempt: open it to see its status and detail; a Failed entry shows the reason the code could not be sent.
  4. For email codes, confirm your SPF/DKIM records authorize the sending domain. Codes flagged as spam will not arrive.

"Hybrid AD: reset succeeded but password reverts"

If you run Microsoft Entra Connect with on-prem authoritative and route Password Reset to Microsoft Entra ID without password writeback enabled, the next directory sync will overwrite the new password with the old on-prem hash. Either enable password writeback in Microsoft Entra Connect, or pick the on-prem agent connection as the Reset connection on the Self-Service page.

"A privileged user can reset through the portal"

The portal accepts an identifier from anyone; eligibility comes from where the lookup searches. For an on-prem reset connection, check the connection's OU lines on the Self-Service page and move the privileged account out of those OUs (or narrow the OUs). If no OU is listed, the lookup searches the Agent's whole base DN. For a Microsoft Entra ID reset connection there is no OU scope — see 25.3.4.

26. Internal Forms

Internal Forms let your team collect records inside OnboardConnect and feed them to workflows. An administrator designs a form in Form Management; staff in the allowed roles fill it in (or import many records at once from a CSV); every entry appears under Form Submissions, where it can be searched, filtered, edited and traced to the workflow runs that used it. Both pages are in the sidebar's Forms group.

26.1 Permissions

PermissionAllows
Manage formsCreate, edit, archive and delete forms (Form Management in the sidebar).
SubmitFill in forms, and see and correct your own submissions (visible fields only).
View submissionsSee every submission of the forms your role can use.
Edit submissionsChange any submission (hidden fields included), delete submissions and import records.

Admins have every permission. Operators can submit, view and edit; Viewers can submit and view. Each form can also be limited to specific roles (Allowed roles); with no roles selected, every role can use it.

26.2 Form Management — designing a form

Go to Form Management → New form. Give it a name and description, choose the roles that may use it, and add fields. Field cards can be collapsed and expanded (Collapse all), and the preview shows the form as people will see it (Show hidden fields includes the hidden ones). Each field has a label, a key (the column name workflows see, generated from the label), a type, optional help text, and options:

Example: track what a workflow has handled. Add a hidden checkbox processed with default false. A workflow reads submissions where processed is false and, after acting on them, sets it to true, so each record is handled once. Use any fields and conditions your process needs — processed is only an example.

Renaming a field's key after submissions exist leaves older values under the old key. To stop using a form, archive it: it no longer accepts submissions or imports, and every submission and its workflow history is kept. A form with submissions can't simply be deleted — you choose to archive it or to delete the form together with all of its submissions. A form that a workflow still uses can't be deleted; remove it from the workflow first, or archive the form.

The form's Workflows section — trigger settings and the workflows using the form — is described in 26.5.

Forms on the home page

People who can view forms see a Forms section on the home page Overview: active forms, submissions in the last 7 days, submissions awaiting processing (not yet read by any workflow) and processed, plus a row per form with its totals, its last submission and the workflows that run on it. The Analytics tab charts form submissions over the last 30 days (days in UTC) with a per-form breakdown. A submission counts as processed once a workflow's Form Read has read it.

26.3 Form Submissions

Pick a form to see its submissions with who submitted each one and when; the columns are the fields marked Show in list. Use New submission to fill the form in.

Open a submission to see all its values, edit them, and review its History:

EntryMeaning
Submitted / editedWho submitted the record, and every edit — who, when and what changed.
Started workflowThe submission started a workflow run (26.5).
Read by workflow / Updated by workflowA run's Form Read read it, or its Form Update changed it.
Workflow not startedA workflow that runs on this form didn't start, with the reason — for example it is disabled, already running, or couldn't be queued.
Workflow run finishedThe outcome of a run that read or updated the submission: Run completed, Run completed with errors, or Run failed (with the error).

Editing your own entries. People with only the Submit permission see a Your submissions list and can open and correct their own entries — the visible fields only; hidden fields stay as they are. Staff with Edit submissions can change any submission, including hidden fields, and delete submissions.

Import (Edit submissions) adds many records at once from a CSV file: map the CSV columns to form fields, validate to see any rows with problems (reported by CSV line number), then import. Only CSV is accepted — an Excel file is rejected with a reminder to use File → Save As → "CSV UTF-8 (Comma delimited)" in Excel and upload that. Whether an import starts workflows is set on the form (26.5).

26.4 Using forms in workflows

  1. In Connections, add an Internal Form connection (no credentials needed; see 8.10).
  2. In a workflow, add Form Read (Forms group): choose the connection and the form, and add conditions (for example processed is false; dropdown and checkbox fields offer their values). It outputs one row per matching submission. Max rows (Options) sets how many submissions one run reads — 1 to 1,000, default 1,000; the rest are picked up by the next run.
  3. In Form Read's Output section, tick the fields later actions need (see below).
  4. Add the steps that act on the records (create accounts, write to the SIS, notify…).
  5. Add Form Update to write back to the same submissions — for example set processed to true, or use + Field… to insert {{column}} from an earlier step (such as the username a create step produced).

Form Read — Output section

Dropdown labels in workflows

For a dropdown whose options have labels (Label | value), Form Read offers two fields: the field itself holds the stored value, and <field>_label holds the label of the chosen option. With the option Staff | OU=Staff,OU=People,DC=company,DC=edu, role is OU=Staff,OU=People,DC=company,DC=edu and role_label is Staff. Field pickers list them as Role (value) (role) and Role (label) (role_label). Tick role_label in the Output section to use the label in a later step — for example in a Transform template or a SIS write. (If the form already has a field whose key is role_label, no extra label field is added.)

26.5 Starting workflows from a form

Open the form in Form Management. In its Workflows section, two settings (saved with the form) choose which new entries start the workflows that run on it:

Below them, Workflows using this form lists every workflow that reads or updates the form (or runs on it without a Form Read step on it), with a Run on new entries switch for each — the same setting as Run when a form is submitted in the workflow's settings. A disabled workflow is flagged Disabled — won't run. Save a new form first, then add a Form Read step on it to a workflow.

Turn on Only the submission that started this run in Form Read to process just the new entry (a manual, scheduled or import-started run then reads nothing). A workflow that is already running isn't started again — the submission's history shows Workflow not started — and its next run picks the new entries up.

One-time jobs. Create a form for the job, import the records from a CSV, build a workflow that starts with Form Read on that form, and run it manually. Archive the form when you're done; its submissions keep the history of what was processed.

26.6 How-to: staff & faculty accounts

Slate feeds student accounts; for staff and faculty, HR or a department can submit a form and a workflow creates the account in the right OU with the right rules. Example for on-prem Active Directory:

  1. Rule sets. In Provision Rules, add a rule set Staff (and Faculty if their rules differ) — Copy of Students is a quick start. Set each one's username format, password policy and groups; with Fields from set to the form below, group rules can use its fields (e.g. CN=Staff-{department},OU=Groups,DC=company,DC=edu).
  2. Form. In Form Management, create Staff account request with First name, Last name, Department, and a required Role dropdown whose values are the OUs:
    Staff | OU=Staff,OU=People,DC=company,DC=edu
    Faculty | OU=Faculty,OU=People,DC=company,DC=edu
    Add a hidden checkbox processed (default false) and a hidden username text field.
  3. Connection. Add an Internal Form connection if you don't have one.
  4. Workflow. Create a workflow:
    • Form Read on the form, condition processed is false. In its Output section tick First name, Last name, Department and Role (and role_label if a later step should show Staff / Faculty).
    • On-Prem Create — Target OU → OU Source From a field (per record), OU Field = Role (value) (role); Provision Rule Set → Chosen by a field, Field = role — the dropdown's options are listed by label (Staff, Faculty); pick the Staff rule set for Staff and Faculty for Faculty; Username Source From provision rule (recommended), mapping {first_name} / {last_name} to the form fields; Display Name from a Transform Fields step or a form field.
    • On-Prem Security Groups with Source From provision rule (recommended) and the same rule-set choice — groups are not set on the create step.
    • Form Update — set processed to true and username to the created username with + Field….
  5. Trigger. Turn on Run on new entries for the workflow in the form's Workflows section (or run it on a schedule). Each request then shows the run's outcome in its History.
Why the OU is the dropdown value. The person filling in the form sees Staff or Faculty; the workflow receives the OU distinguished name and creates the account there. Making Role required avoids records without an OU; a record whose Role is empty uses the step's Fallback OU if set (see On-Prem Create — Target OU), and the default rule set.

27. Email Templates

Email templates are the messages an Email Notify step sends. Manage them under Settings → Email Templates; pick one in the step and set who it goes to.

27.1 Starter templates

TemplateUse it for
Success Email / Failure EmailOne summary per run to your team: status, counts and the per-record results table. Usually placed in the On Success / On Failure lanes.
New Account ReadyOne email per person whose account was created — to a manager, HR or the person. Includes the one-time password only when a step set one, with a reminder to change it at first sign-in.
Form Request ProcessedOne email per form submission, to whoever submitted it, saying what was created. Never includes a password.

Every tenant starts with these. Edit them freely; your copies are never overwritten.

27.2 Variables

In the template editor, the Available Variables panel lists the variables you can use. It starts collapsed — click its header (Show) to open it, then click a variable to insert it at the cursor in the subject or body.

VariableShows
{{tenant.name}}, {{workflow.name}}, {{workflow.status}}Your institution, the workflow and how the run ended.
{{workflow.results}}A table with one line per record (name, result, details). {{workflow.studentResults}} still works and shows the same table.
{{workflow.resultsSummary}}A one-line count, e.g. “13 records: 12 updated, 1 error”.
{{record.<field>}}Any field on the record — a form field, a SIS or SQL column, or a value an earlier step produced (e.g. {{record.first_name}}).
{{record.<field>.label}}The label of a form dropdown answer instead of its stored value — e.g. {{record.role.label}} shows “Staff”, not the OU path stored behind it.
{{account.name}}, {{account.firstName}}, {{account.lastName}}, {{account.username}}, {{account.email}}, {{account.result}}The person's name, the account created, its email and the outcome.
{{account.passwordSection}}A box with the one-time password, shown only when a step in this run set a password on that record (for example On-Prem Create with an Initial Password, or a Set Password step). Empty otherwise, so the same template works for accounts with and without a password.
{{account.details}}Name, username, email and each form answer (dropdowns by their label).
{{submission.submittedBy}}, {{submission.submittedAt}}, {{submission.formName}}Who submitted the form, when, and which form (records that came from Form Read).

27.3 One email per run, or per person

A template that uses only run-level variables (tenant, workflow) sends one email per run. When the template uses a person or form variable (record, account, submission), or the step's To contains a field such as {{record.email}} or {{record._submitted_by}}, the step sends one email per record that reached it. Records without an address are skipped and named in the step's result; the step sends at most 500 emails per run.

Staff & faculty example. After Form Read → On-Prem Create, add Email Notify with New Account Ready to HR, and another with Form Request Processed To {{record._submitted_by}}, so the person who asked gets a confirmation.