Members & roles
Add and invite people, manage invitations, search, and import members.
How do I add a member?
The Members page starts with its heading, then two tabs — Members (the roster) and Seats & terms. On the roster, there's one way to add people: the Add people button, the single primary action above the directory. The same form both adds someone to the directory and — if you turn on "Email them an invitation to sign in" — invites them to sign in, so there's no separate invite form to hunt for. (Import CSV and, for administrators and the chair, Invitations sit next to it as plain buttons; the directory's search, filters, and CSV export live in the toolbar above the roster.) Add people opens a side panel that creates the person's directory profile right away. The panel runs the full height of the window and scrolls inside itself, so it never runs off the bottom of the screen no matter how much you fill in.
It's laid out in the order the decisions actually happen:
- Who they are — first name and notification email (where BoardTools sends their invitation and board emails) are required; last name is optional (for a member who goes by a single name), and pronouns are too.
- Their role on the board — their position and their role, side by side, because one sets the other (see below).
- Meetings already scheduled — shown only when the board has upcoming meetings on the calendar. Meetings scheduled before this person was added emailed their invitations to the roster as it stood then, so this option (on by default) sends the new member one email listing everything already scheduled — dates, times, and a link to the Meetings page to see details and RSVP. Committee meetings aren't included, since a brand-new member isn't on a committee yet. Turn it off to add them silently.
- Sign-in access — the "Email them an invitation to sign in" toggle, shown to administrators and the chair.
- Contact & profile details — labelled emails and phone numbers (add as many as you need with Add email / Add phone), a full mailing address, an emergency contact, photo, bio, and the email notification preference, tucked into a collapsible section so the quick path stays quick. Everything in it is optional and saves whether or not you expand it.
Everyone you add shows up in the directory immediately.
Position and role
A position is a seat your board has defined — Chair, Treasurer, Director at large. A role is what the person may do in BoardTools. They're related but separate, and the panel treats them that way:
- Picking a position is optional and does not require an invitation. A board member can serve a term without ever signing in, so the position field is always there. Positions with no seats left are listed but can't be chosen, and each one shows how many seats are open.
- Picking a position fills in the matching role — choose Treasurer and the role becomes Treasurer. You can still change it afterwards for someone who needs different access than their seat implies.
- Their term starts today, invitation or not. Picking a position seats them straight away — the row shows that seat and its term in the Seat & term column the moment you add them, and the board-composition figures above the roster count it. Inviting them to sign in is a separate grant that changes nothing about the seat; adjust the dates any time under Seats & terms, or end the term there if the appointment falls through.
If your board hasn't defined any positions yet, the field says so and links to Seats & terms, where you create them. For the fuller explanation, see Roles vs. positions.
Sign-in access
- Leave the toggle off to just record someone in the directory. Nothing is emailed and they can't sign in yet — handy for keeping contact details for someone who doesn't need board access. The role you chose sits waiting and takes effect if you invite them later.
- Turn it on to also email them a secure link to accept and set up sign-in access. Until they take it up, they appear in the directory with an amber Invited status badge; it turns into the green Active badge the first time they sign in, whether or not they used the link (see What are the member statuses? below). See Getting started: sign in for what accepting looks like from their side. In short: the link offers Create your account to accept (or I already have an account), and after signing in they come straight back to a Join board name page with one Accept invitation button. If they sign in from somewhere else first, the board offers them Accept your invitation instead of turning them away.
Who can invite? The "Email them an invitation to sign in" toggle — and the per-row Invite to sign in action below — are shown only to administrators and the chair. If you don't see them, ask a board administrator or your chair to send the invitation. Everyone who can add a member can still seat them on a position.
Added someone without an invite and want to give them access later? Open that row's ⋯ actions menu and choose Invite to sign in — it emails the same secure link and flips them to Invited until they accept. (You'll only see it for members who don't already have sign-in access.)
Invitation gone unanswered? Once someone shows an Invited badge, their row's ⋯ actions menu offers Resend invite in place of "Invite to sign in" — it sends a fresh copy of the same secure link (a new expiry, the old link stops working) so it lands back at the top of their mailbox instead of making them dig up the original. The same menu also offers Revoke invitation for that row — see below.
Knowing when someone accepts. You don't have to keep checking the roster: the moment someone accepts your invitation, you get an Invitation accepted notice in the bell (and by email) — "Jane Doe accepted your invitation and joined Acme Board" — that opens their profile. Their row stops showing Invited, and there's no need to resend. If you've left the board by the time they accept, the board's administrators (or the chair) are told instead. You can switch the in-app or email copy off under Your membership in notification preferences.
Invitations: pending, expired, and revoked
An Invitations button sits next to Add people on the roster, shown to the same administrators and chair who can invite. It opens the list of pending invitations — everyone who's been invited but hasn't accepted yet — each with Resend and Revoke. It's a list only: to invite someone new, use Add people and turn on "Email them an invitation to sign in". Invitations that were accepted or revoked drop off the list. Every invitation link has an expiry, and on Members → Invitations, each invitation in the list shows when it was sent and when it expires — or, once that date has passed, that it has expired. An expired invitation shows an Expired badge instead of "Pending" (never a stale "Pending" for a link that no longer works), and the exact same Expired badge appears on the Members roster itself, in place of "Invited", for anyone whose invitation died before they accepted — the roster and the invite list always agree.
Resend stays available on an expired invitation — click it and the person gets a fresh link with a new expiry, exactly as if you'd resent a still-live one. Revoke also stays available on an expired invitation: even though its link already stopped working on its own, revoking it explicitly closes the door — the row can no longer be resent, and you'd need to send that person a whole new invitation to reach them again. Pending invitations (live or expired) can be resent or revoked from Members → Invitations (also reachable from the setup wizard's Invite members step, open any time via Settings → Board profile → Open setup walkthrough) — or revoked directly from the Members roster row's own ⋯ actions menu, without leaving the directory. Revoke asks you to confirm first — it names the person and warns that their existing link stops working immediately and you'll need to send a new invitation to invite them again, since there's no way to undo a revoke.
Automatic reminders, and when links expire
An invitation link works for 14 days from when it was sent (or last resent). You don't have to chase people by hand: if someone hasn't accepted, BoardTools reminds them by email — at most twice:
- 3 days after the invitation was sent, and
- 2 days before the link expires — the last nudge.
Reminders go out at 9:00 in the morning on your board's calendar (the time zone in Settings). Each one is the same invitation email with the same one-tap Accept invitation button, and says when the link expires.
Each reminder carries a new link. For security, a reminder replaces the previous link — the email says so ("This link replaces the one we sent on …"), and the earlier link stops working. A reminder never changes the expiry date.
No reminder right after you resend. If you Resend an invitation, no automatic reminder goes out for the next 48 hours — your resend already put it back at the top of their mailbox. Reminders stop for good once the invitation is accepted, revoked or expired.
Seeing that a reminder went out. The member's row on the roster, and their profile, show Reminder sent with the date next to the Invited badge. Each reminder is also recorded in the activity log as Invitation reminder sent. There's no setting to turn reminders off, and a reminder never extends the expiry — use Resend for a fresh 14 days.
Each member row leads with their photo — or their initials when they haven't added one — next to their name. A single Contact cell holds both email and phone, each with its own small icon action: mail to start a message, call to dial, and copy to put the address or number on your clipboard. Contact details you aren't allowed to see (a fellow member who has hidden their email or phone) show a Private state instead of the value — see privacy choices.
A summary above the roster shows the board's composition at a glance — seats filled and vacant, quorum, how many members hold a voting seat, and how many terms expire soon — with a bar showing the role breakdown across currently serving members (active or on leave). A board that keeps its full historical roster — resigned, removed, or past members — never sees those figures inflated by people who no longer serve; the role bar always reconciles with the seats-filled and voting-member counts beside it.
Every figure is a link to the page that answers it, and each one goes somewhere different:
- Seats filled opens the Positions table under Seats & terms, which states the same filled-of-capacity count for each position.
- Vacant seats opens the Open seats list in Succession, where you can fill one.
- Quorum opens Settings → Governance, which is where the rule behind the number is set (it opens read-only if you can't change settings).
- Voting members jumps to that same list of people below, with the Voting members only filter already applied.
- Terms expiring opens the Terms table under Seats & terms, which lists every term and its end date.
The Terms expiring figure counts the next 12 months. The line beneath the figures links to Succession set to that same 12-month horizon, so the forecast you land on lists exactly the terms this figure counted — Succession's own default is a shorter, 90-day operational window, and its Forecast horizon control switches between them.
Seats filled and Vacant seats count seats, not positions: a position with capacity for four directors is four seats, so filling one of them still leaves three vacant. A position with no capacity limit counts as one seat, filled once anyone holds it. Because both figures read the same capacity your positions define, the vacancy count here always matches the seats Succession lists as open now.
The Quorum figure follows your board's configured quorum rule — simple majority, two-thirds, a fixed number, or a majority of filled seats — set in Settings → Governance. The line under the number names the rule in force ("two-thirds of seats (9 voting)"), so the figure never implies a majority your bylaws don't use. The number in brackets is the count quorum is measured against: voting members in filled seats. Members whose every current position is non-voting (an ex-officio secretary or an observer, say) are left out, vacant seats don't count, and a seated member with no position recorded counts as voting. That is the same count a board meeting's attendance page, the Run cockpit and motion results use, so the figures always agree. Because members with no position recorded are included, this number can be larger than Voting members, which counts only people holding a voting seat. When nobody counts, the figure shows an em dash rather than a threshold.
Whether a term counts as still current — and so whether it holds a seat toward Quorum and Voting members, and whether that person is included in the Voting members only filter and CSV export — is judged against your board's own configured timezone (set on its Settings page), not wherever the server happens to run. So these figures always agree with the date on your board's own calendar, including late in the evening or early in the morning, and with what Seats & terms shows for the same term.
A board with 25 or fewer members shows the roster as a card grid by default, readable by face; a grid/table toggle switches to the dense table view (and back) at any time, on any size board.
On a phone, the table view becomes a compact list. Each member is one row: their photo or initials, their name, and one grey line such as "Director · Treasurer · term ends Nov 10". A status chip such as Invited only appears when a member isn't simply active. Tap a name to open that member's profile. The profile, or the card grid, is where you'll find their contact details and the ⋯ actions menu on a phone. If you can manage members, tap Select above the list to show a checkbox on each row for bulk actions. Tap it again to leave select mode.
From the Members page, each row has an inline email notification toggle and a ⋯ actions menu. What the menu offers depends on your role: an administrator or the chair can edit any profile, remove a member, invite a member to sign in, and change a member's status, and any member can edit their own row. Removing a member asks you to confirm first. If you can't change a row, its preferences show as read-only — you won't see controls that wouldn't work.
Above the roster, a quick search box, role filter, status filter, committee filter, and voting members only checkbox narrow the list by name/email, role, status, committee, or whether a member currently holds a voting seat — the same seats-and-terms fact the Voting members figure above counts, so ticking it (or arriving via that figure's link) always shows exactly that many rows. Combining search, role, status, committee, and voting narrows the list by all of them at once, and each one round-trips through the page's URL so a filtered view is bookmarkable and shareable. These sit behind a Filters button, collapsed when the page opens, so they don't push the roster below the fold — tap it to expand them. When any filter is set the button says so (Filters (2 active)), so a filtered view never looks unexplained.
The committee filter answers "who's on Finance?" without leaving the directory: choose a committee and the roster, the count beneath it, and the Export CSV file all narrow to that committee's members — its chair included, as an ordinary row. It lists your board's active committees (see Committees), so a board that hasn't set any up doesn't see the control at all. Like every other filter it keeps your current sort order and any other filters you've set, and it survives sorting the roster by a column header.
Clear filters returns the roster to its default view — every filter dropped and the sort order below reset — so however you've narrowed or re-ordered the list, one click gets you back. The button appears as soon as anything is active.
Sorting the roster
In the table view, the Member, Role, Status, and Seat & term column headers are clickable — select one to sort the roster by that column, and select it again to reverse the direction. Those headers are the only way the roster is sorted: there's one sort control, and using it visibly reorders the rows. A small caret next to the header name shows which way it's currently sorted; the order round-trips through the page's URL too, so a sorted view is just as bookmarkable and shareable as a filtered one, and it composes with the search/role/status/committee filters above — sorting keeps your filters, and filtering keeps your sort. Seat & term sorts by when each member's current term ends — soonest first by default — so it's the fastest way to see who's up for renewal before a term-renewal cycle; members with no current seat, or an open-ended term, sort to the bottom either way.
Each header is a real button, so you can reach it by keyboard (Tab to it, Enter or Space to sort) and screen readers announce which column is sorted and in which direction.
Bulk actions
If you can invite members or change their status, each roster row also gets a checkbox. Tick the checkbox on each row you want (or the header checkbox to select everyone currently shown), and a bulk action bar appears above the table with Invite selected to sign in and Set status controls. Each one applies to every selected member in a single action, reports back how many succeeded, and the selection clears once the batch finishes. Selecting members and using either control works fully from the keyboard.
Choosing Removed, Resigned, or Past as the bulk status always asks
you to confirm first, naming how many members are affected — the same
confirmation a single row's status change asks for. A member who can't
actually be changed (for example, one who already has sign-in access, when
you bulk-invite) is reported individually rather than stopping the rest of
the batch. Bulk actions need the same member.manage permission as the
per-row invite and status-change controls; everyone else keeps seeing the
full roster without the checkboxes.
How do I view a member's profile?
Select any member's name — in the roster, or from an audit entry — to open their profile page. It's a read-only view that gathers, in one place:
- their photo (or initials), name, pronouns, role, and status;
- their seats and terms (current terms are marked, with a short history);
- their contact details — email, phone, mailing address, and bio. Every email address opens your mail app and every phone number (including the emergency contact's, when you can see it) starts a call when you tap it, and each has a copy button beside it;
- the committees they sit on, with their committee role (each committee name links straight to that committee);
- their attendance across past meetings — present / remote / absent counts, an attendance rate, and their most recent meetings. Only you and the people who record attendance (an administrator, the chair, or a staff liaison) see this section; see Attendance history & rates for exactly which meetings count and which are excluded; and
- their open tasks — the action items currently assigned to them, in the same read-only table as the Tasks page. Each row links back to that task on the Tasks page.
On a phone you don't need to scroll to the Contact section: when you can see the member's email or phone, Email and Call buttons sit at the top of the profile, next to Back to directory. If the member keeps that detail private, the button simply isn't there.
What you see respects the member's privacy choices: you always see your own full profile, an administrator or the chair sees everyone's, and a fellow board member sees only the details that member has chosen to share. Private fields — administrator notes, emergency contact, and someone else's communication preferences — are never shown to fellow members. Assigned tasks are the one exception: they aren't a privacy choice at all — the Tasks page already shows every task's assignee to any member who can see it — so a member's open tasks appear on their profile for every viewer.
If you're allowed to edit the profile (it's yours, or you're an administrator or the chair), an Edit profile button appears at the top; everyone else sees the profile read-only. The edit page lets you update every one of the contact details above — add or remove labelled emails and phone numbers, fill in the full mailing address, and add an emergency contact — plus your name, pronouns, photo, and bio. See Your profile & account for the full field list.
You can't remove yourself, the last member, or the board's only chair. These guards stop a click from accidentally locking everyone out: your own row never shows a Remove option (ask another administrator to remove you instead), and removing the board's very last member or its only chair is refused with an explanation. To actually retire a board, use Delete board on the Settings page instead of removing every member one by one.
What do Seats & terms look like on a phone?
On a phone, the three tables under Members → Seats & terms show each seat or term as one compact row instead of a stack of labelled lines, with the date that matters first:
- Seats up this cycle — the seat's name, then a grey line such as "Ends Oct 28 · Ada Lovelace" (or "No current holder"), with the Term ending or Vacant chip.
- Positions — the position's name, then how many seats are filled, its term rule and whether it votes, with its Officer, role and Full chips.
- Terms — the member's name, then a grey line such as "Ends Mar 31, 2027 · Treasurer · from Nov 1, 2024" ("Ended …" for a past term, "Open-ended" when there's no end date), with the Current or Past chip.
Dates are your board's calendar dates; the year is left off when it's this year. If you can manage seats and terms, tap ⋯ at the end of a row to edit, reorder, end or delete it — the same menu as on a computer.
How do I export the directory?
Next to the search box and filters described above, an Export CSV button downloads the current view — it always reflects whatever search, role, status, committee, and voting-members-only filters are active, never a wider unfiltered set, and its rows come out in the same order the roster is showing them (including whichever column you've sorted by). It's hidden when there's nothing to export (no members, or none matching the current filters).
The downloaded CSV includes a Status column alongside Name, Email, and Role, using the same words the Status badge shows (for example "On leave" or "Resigned") — so a status-filtered export, an insurer request, or an annual filing never leaves a former board member indistinguishable from a sitting one.
What the export contains depends on your own role — exactly the same as what you'd see opening each member's profile. Board administrators and the chair get the full export: every contact detail on file, including phone numbers and home mailing addresses. Anyone who can run an export without also being able to manage the roster — today, a Staff Liaison — gets the same directory-contact view they already see on screen: names, roles, statuses, and whichever contact fields a member has chosen to share. A home mailing address, in particular, is private by default (see What do other board members see about me?) and never appears in that export unless the member has opted to share it — the column still exists in the file, just empty, so the file always opens with the same columns no matter who ran it. Your own row is never redacted in your own export, whatever your role. Every export is recorded in the audit log, naming which of these two views it produced.
How do I bulk-add members from a spreadsheet?
Open Members → Import CSV. Paste your CSV text or upload a file, preview the parsed rows (anything that can't be imported is flagged with a plain- language reason), then confirm to add them all at once. Separate First name / Last name columns are preferred; a single combined Full name (or Name) column is still accepted and split automatically.
Uploaded files must be plain-text CSV under 5 MB; anything larger is rejected with an explanatory message before it's even read. The preview also caps at the first 2,000 rows — if your file is larger, the Review page shows a warning banner explaining the tail was dropped, and asks you to split the file and re-upload the rest.
What if some rows in the preview are already flagged as skipped?
If the preview shows any rows the importer can't add (missing name, invalid email, already a member, duplicated in the file, or an unrecognized role), a Download skipped rows (CSV) button appears at the top of the Review table. The download is a small CSV listing each skipped row's line number, name, email, role, and the plain-language reason — so you can fix them in your spreadsheet, save it, and re-import the corrected file without hunting the errors out of the on-screen table. Re-importing the whole file is safe: rows that already succeeded are simply skipped as already-a-member.
What does it mean if a row "failed" after I confirm?
After you confirm the import, the Review table's Status column updates to show what actually happened to each row — not just what the preview expected. Most rows will read Imported. A row can instead read:
- Failed to import — something rejected that specific row while saving (for example its data didn't pass validation). The confirmation below the table lists every failed row by its row number, email, and a plain-language reason, so you don't have to guess which rows to fix. Correct the row(s) in your CSV and re-import — re-importing the whole file is safe, since rows that already succeeded are simply skipped as already-a-member.
- Skipped — already a member — someone else added that email to the board in the moment between your preview and your confirm. That's not a failure: the person is already on the roster, so there's nothing to fix or retry for that row.
The import never automatically retries a failed row — you always fix the CSV and re-import.
What happens when a new member joins?
Each new member has their own onboarding checklist — completing their profile, acknowledging the governing documents, and confirming their seat. It's personal, so it isn't part of the Members directory: it lives in your profile area, linked from your dashboard and your account menu. See Your onboarding. (The old Members → Onboarding address still works and takes you there.)
What are the member statuses?
A member's status reflects where they are in their time on the board: Prospective, Nominated, Invited, Active, On leave, Emeritus, Resigned, Removed, or Past. It's shown as a badge next to their name throughout the directory (Invited carries an amber badge, kept deliberately distinct from Active's green so a pending invitation never reads as an accepted sign-in at a glance). Invited means they were added with a sign-in invitation and haven't taken it up yet — it clears to Active automatically the first time they sign in. That's true however they get there: they don't have to use the emailed link. If they sign in some other way (their email address is already a BoardTools sign-in, say, or they go straight to your board's address and sign in there), the roster catches up on its own the moment they arrive, and their outstanding invitation is marked accepted. If that invitation's link expires before they sign in at all, both the roster and that member's own profile page show Expired instead of Invited on that same badge — the two surfaces always agree — see Sent, expired, and revoked invitations above for what to do about it (Resend still works). An administrator or the chair changes a member's status from that row's ⋯ actions menu, which offers only the transitions that are valid from the member's current status.
The Invited badge is about sign-in access, not standing on the board: an Invited member holds their seat from the moment you add them. They appear on meeting attendance rosters, can be marked Present (including by Mark all present), count toward quorum, and receive meeting reminders and availability polls — none of that waits on them logging in.
Good governance tip: keep statuses current as people join, step back, or leave — it's what your "seats up this cycle" view and succession planning rely on. See Roles vs. positions.
How does AI minutes drafting handle our board's information?
What the minutes assistant sends, what it never sends, why a human always approves, and how to keep the feature switched off.
What can each role do?
The six board roles in BoardTools — chair, admin, treasurer, director, staff liaison, and observer — and what each one is allowed to do.