> ## Documentation Index
> Fetch the complete documentation index at: https://help.broadstripes.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enhancements, updates, and bug fixes for Broadstripes

export default function ReactInteractiveTable() {
  const {useMemo} = React;
  const tableThemeStyle = {
    '--table-bg': '#ffffff',
    '--table-bg-secondary': '#f9fafb',
    '--table-text-primary': '#111827',
    '--table-text-secondary': '#6b7280',
    '--table-border': '#e5e7eb'
  };
  const colors = {
    background: 'var(--table-bg)',
    backgroundSecondary: 'var(--table-bg-secondary)',
    textPrimary: 'var(--table-text-primary)',
    textSecondary: 'var(--table-text-secondary)',
    borderColor: 'var(--table-border)'
  };
  const releaseNotes = [{
    type: "New/Improved",
    category: "Settings",
    description: "You can now create a new job title (or classification) directly from the filter input in the Job titles dialog: type the name and click the offer button that appears, or press Enter when no existing titles match.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "When you change a status report's grouping to a custom-field breakout type, Broadstripes automatically enables the Breakout setting for every organization you have set to display, so you do not need to enable each department's Breakout checkbox manually after switching.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Organizing dialog's follower list now shows each follower's employer (for people) or employee count and full hierarchical organization name (for organizations), matching the row style used in search results elsewhere in the app; the text filter on the list now finds organization followers by their parent organization's name as well as their own; and the add-follower search results now show a contact's current leader in amber directly on the row instead of on a separate 'Currently following' line.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Status reports can now split each department's row into sub-rows by a custom field value: choose one of the new 'by custom field' groupings, select a custom field under 'Split by', and check the breakout box for each department on the Organizations tab to display one sub-row per value of that field held by the department's workers.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "When you set up a recurring scheduled report, the Job name field is now prefilled with a suggested name built from the report name and output format; you can type over the suggestion at any time, and the suggestion updates automatically when you change the output format before typing.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "When you schedule a report, the recipients field now starts with your own account pre-selected, so you receive the report by default without having to add yourself manually.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Status reports now display rotated column headers centered above their columns, and reports with breakout sub-rows show each department row in bold with a stronger rule above it and a matching rule after its last sub-row to group the department with its sub-rows; previously, the header rotation used a pixel-offset calculation that could leave labels misaligned, and breakout departments were not visually distinguished from other rows.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Scheduling a custom SQL report with a title that has leading or trailing spaces no longer saves a job name with those extra spaces; the title is trimmed before it is used to build the default job name, so the saved name matches what the scheduling dialog showed.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The Turf Leader column in search results now shows a Quick View button next to each leader's name so you can open the leader's record without leaving the list, and organization rows now display a 'Direct leader' or 'Indirect leader' label indicating whether the leader is assigned directly to that organization or inherited from an ancestor in the hierarchy.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Default call script setting in Call Center settings is now a searchable combobox: open it and type any word fragment of a script name to filter the list, so you can find the right script quickly even when scripts have long or date-prefixed names.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The caller session page now works better on phones: the call number moves into the header bar to save space, the action bar sticks to the bottom of the screen, a 'More below' chip appears when script content extends past the action bar, and the person details reorder so phone numbers appear first and custom fields with no value are hidden.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Completed outcomes on the Call Center Settings tab are now managed in a dialog that lists your project's script outcomes as checkboxes with attribution showing which scripts use each one, flags outcomes not found in any script, and lets you add custom outcomes by name, replacing the previous comma-separated text field.",
    releasedate: "2026 September"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call Center Settings tab now saves each setting automatically as you change it, with a per-row save indicator, instead of collecting all changes and applying them with a single 'Save settings' button.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Search",
    description: "When saving a search layout fails, your active layout is no longer incorrectly switched to the layout that could not be saved; the layout you were using before the failed save remains active.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Imports now correctly match existing records when CSV values contain non-breaking spaces, trailing spaces, or other whitespace variations that Broadstripes normalizes when data is saved; previously, those values would silently fail to match even though the underlying text was the same.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Searching for an organization in the org picker on a public form now correctly handles special characters such as '!', '~', and '-'; previously, terms containing those characters produced an unparseable search query or silently returned no results.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Leader reports now generate and download successfully when the report name contains accented characters; previously, the job failed to store the PDF when an accented letter in a leader's name came back from the report server as a byte that the database rejected.",
    releasedate: "2026 September"
  }, {
    type: "Fixed",
    category: "Call center",
    description: "Selecting 'Not set' from the assessment dropdown during a call now correctly clears the contact's assessment; previously, choosing 'Not set' was silently ignored and the existing assessment remained unchanged.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Search suggestions in the home panel (Find people, Find workplaces, Log a conversation, and the home-tab filter cards) now show each person's leader alongside their assessment and workplace, and each organization's assigned leader and employee count.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The persistent pulsing indicator dots (Quick View, Bulk Actions, Layouts, Save Search) that remained on the search results page after completing the onboarding tour are removed; you can reopen the tour at any time using the new 'Tour this page' link in the search results header.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Report and quick-search quick links in the Home tab's Search hub now run the report or open the search dialog correctly; previously, clicking these link types resulted in an error.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "On Mac with a trackpad or Magic Mouse, horizontal side-swipes past the scroll edge no longer trigger the browser's back/forward navigation gesture or the page rubber-band bounce; pages wider than the viewport, such as search results with many columns, still scroll horizontally as before.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Creating a quick link from the Search Hub on your homepage now correctly updates the Saved Searches list in any other open view without requiring a page reload; previously, the update was silently skipped.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Saving the Organizations tab on a status report definition now works correctly for projects with large numbers of organizations; previously, projects with roughly 2,000 or more organizations received an error and the selection was not saved.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "The Import # column in the Recent Changes grid now shows a clickable link for all import IDs, including numeric ones; previously, numeric import IDs appeared blank in this column.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Applying a saved import configuration from the dropdown now correctly shows and hides the Configuration panel subpanels to match that configuration's match settings; previously, both the matched-records options and the no-matching explanation could appear side by side, rendering three columns instead of two.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "When you click 'Skip this person', the call center now briefly displays 'Skipping [Name]' with a spinner before moving to the next person, confirming the skip registered and naming who was skipped.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Social Groups",
    description: "A filter box now appears next to the Show groups and Add members tabs on the social groups page; typing narrows group cards and the checklist by group or member name on the Show groups tab, and narrows the member list by person or department name on the Add members tab; Ctrl-F (Mac) or Alt-F (Windows/Linux) focuses the filter from anywhere on the page.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call Center tab strip now shows numeric badges: the Scripts and Pools tabs display a warning count when scripts or active pools have configuration issues, and the Locks tab shows the total number of current locks; badges disappear when the count reaches zero.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Active pools whose assigned script has been deactivated now show a warning icon in the Script column of the Pools admin grid; clicking the icon opens a description of the problem and three ways to resolve it: reactivate the script, assign a different script, or deactivate the pool.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Scripts admin grid now includes a Call pools column showing every call pool that uses each script; up to two names appear inline and a +N chip opens a popover with all pools and direct edit links.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Active column on the Scripts and Pools admin grids is now a toggle switch instead of a checkbox; the switch moves immediately when clicked and rolls back automatically if the server rejects the change.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Scripts, Pools, and Locks admin grids now display a formatted empty state with a description and a help link when no rows are present, replacing the plain text placeholder; the Scripts empty state also includes a 'Create your first script' button for admins who can create scripts.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The tag picker's filter field now shows 'Type to filter or add a new tag...' as its placeholder, making it easier to discover that typing a name not matched by any existing tag and pressing Enter creates and assigns a new tag directly from the picker.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The address keyword now accepts text searches: use address = 'Main St' to find contacts whose address contains those words, address == to match an exact full address (including apartment or unit), and address : to search by text fragment; the existing address status values (mapped, good, bad, review, multiple, repeated, and others) continue to work as before.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Administrators now see warning banners and row-level warning indicators across the Call Center Scripts, Pools, and Settings tabs when a script has no OUTCOME steps, when none of a script's outcomes match the project's completed outcomes, when an inactive script is still assigned to an active call pool, or when no completed outcomes are configured project-wide; clicking the warning icon on a script or pool row opens a popover with a description of the problem and how to fix it. A warning also appears in the script editor after validating a script with this issue.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Data management",
    description: "Transferring tags to another user now runs in the background; the Owner column updates immediately in the tags table, and a confirmation notice appears when the transfer is queued.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call Center admin navigation has been reorganized: the 'Other settings' tab is renamed 'Settings' and is now the first tab (before Scripts and Pools), and the Completed outcomes field is now at the top of the Settings form with help text explaining the required format.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Project Overview tab has been rebuilt as an interactive panel dashboard: panels load independently, can be dragged to reorder, hidden with an eye icon and restored from a tray below the grid, and your layout saves automatically per project; project admins see additional panels for imports, active members, call center, public forms, messaging, configuration, and features.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A Color toggle in the search results toolbar lets you switch table row stripes between Classic (green) and Neutral (grey); your preference is saved to your account and applied to every striped table in Broadstripes.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "A 'Change file' button now appears on a data import's settings page after a file has been uploaded, letting you replace the source spreadsheet at any point before the import is scheduled or run.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The active filter scope now appears as chips beside the result count in the search results header -- showing 'People', 'Orgs', or a saved filter name -- and each chip has an X button to clear that filter without opening the filter dropdown. The everyday People scope stays grey; a less common scope (Orgs, a custom record type, or an employer filter) carries a faint amber tint.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search results toolbar has been redesigned: bulk-action menus (Actions, Communications, Reports, Maps) now show labeled icon badges; menu sections use text headers instead of dividers; a 'Take action' eyebrow label identifies the toolbar; and a master checkbox joins the 'all' and 'page' selection buttons.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "When a bulk action is triggered with no contacts selected, a dismissable inline alert now appears below the toolbar explaining how to make a selection, replacing the previous browser alert dialog.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The 'No results' state for searches has been redesigned: it shows the active filter as a highlighted chip, lists specific suggestions (check your filter, edit your search, check spelling), and links to the search language basics guide.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Settings",
    description: "After creating a new project from the union portal dashboard, Broadstripes now correctly takes you to the Add members page for that project instead of showing a broken page.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Maps",
    description: "When a shape group is deleted while the map is open, the group is immediately removed from the shape popup's group menu and saving a shape to a since-deleted group now shows a clear error message ('Its shape group no longer exists - please reload the map') instead of a server error.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Exported table files (XLSX and PDF) now always download with the correct file extension; previously, files could arrive without an extension or with the wrong one if the project name contained periods.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The recipient picker in the scheduling dialog now sorts users and user groups alphabetically regardless of letter case; previously, names starting with an uppercase letter always appeared above names starting with a lowercase letter.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Scheduled reports now generate even when all configured recipients are inactive or have no deliverable email address; previously, the report was silently skipped and would not appear in the Reports list.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A new 'What's new' panel in the user menu shows recent product updates with New and Improved badges; the panel opens from the user menu or slides open automatically on your project dashboard when a new release is available, and auto-opening can be turned off from the panel footer or your notification preferences.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The scheduling dialog for reports (status reports, search results reports, and spreadsheet template reports) has been redesigned: schedule options now use One time and Recurring tabs with an interactive sentence-token editor and recipient selection now uses a searchable chip-based picker that shows each user's email address alongside their name.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "Scheduling a bulk email or text message now uses a 'Schedule for later' toggle switch instead of radio buttons; enabling the toggle reveals the same One time / Recurring sentence-token editor used for report scheduling.",
    releasedate: "2026 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The 'Close all' button in the toast notification stack now shows a count of all accumulated notifications -- for example, 'Close all (5)' -- so you can see exactly how many toasts will be dismissed before you click.",
    releasedate: "2026 August"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "The Data Imports, Automated Imports, Email Sent Messages, and SMS Sent Messages history tables now correctly show all records when scrolling through older history; previously, some entries could be silently skipped at page boundaries on projects with certain import ID sequences.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Settings",
    description: "Deleting an assessment code now disables the Delete option for all other codes while the deletion is processing, preventing errors that could occur when multiple codes were deleted simultaneously.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A new 'Keep existing values when a field is left blank' checkbox in the Standard fields tab of the public form editor lets administrators control whether blank form fields preserve or overwrite existing data on matched contacts; the setting is on by default, and an info popover explains exactly which field types it governs.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The union portal search bar now focuses automatically when you open the portal, and pressing Escape or clicking away no longer discards your typed term -- refocusing the search bar re-runs your previous search automatically.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When you add an event step field (such as Card - Signed) or other checkbox field to the search builder, the operator now defaults to 'is checked' instead of 'was checked by', so the rule works immediately without requiring an additional value.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Dismissing the '...and N more notifications' summary toast now clears all the notifications it represents, so the 'Close all' button correctly drains the full backlog instead of only the notifications visible on screen.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The search builder's Ctrl+S keyboard shortcut and its autocomplete fields no longer throw errors when browser autofill or IME composition events fire, so those features now work reliably for users with non-Latin input methods or active autofill.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The search-results onboarding tour and its feature-tip dots (Bulk Actions, Quick View, Layouts, Save Search) now appear only once per user across all projects; users who already completed the tour on one project will no longer see it again when they access additional projects.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "The navigation tabs in the public form settings editor no longer overlap the 'Selected fields' sidebar on narrower browser windows; the tabs now wrap to a second row when they don't fit, and tab icons are hidden on smaller viewports to reduce how often wrapping occurs.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "In the tag picker, the 'Recently used' band now appears at the top of the list -- above the 'Selected' band -- so your most commonly used tags are the first thing you see when you open the picker.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Working with records",
    description: "The tag picker now loads your tag catalog and 'Recently used' band correctly when opened from the Quick view panel on any page, not just from search results or contact detail pages.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Call pool settings now include a 'Caller page title' field (all pool types) and a 'Caller greeting' field (authenticated pools only), letting organizers customize the browser tab title and the sign-in page greeting that callers see when they open the pool link.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Caller-facing pages -- including the sign-in form, session error, bad link, call complete, empty queue, and call pool unavailable screens -- have been redesigned with a consistent card-based layout and clearer messaging. Inactive call pools now show a specific 'no longer active' message instead of a blank screen.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The union portal now has a full navigation header: the Broadstripes logo links back to the portal home, a project switcher lets you navigate directly to any project, and the user disc opens a menu with Help center, Log out, and (for super-admins) the super-admin portal.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "A new Quick check-off dialog lets you search for contacts by name (or employer) and check them off an event step one by one, with an in-session log and per-entry undo -- accessible from the sidebar, from a keyboard shortcut (Ctrl+Q on Windows/Linux, Control+Q on Mac), or directly from each step row on the Events page.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Union portal admins can now search for projects and users directly from the portal header -- type a name (Cmd+K or Ctrl+K to focus), select a result to open the project's settings or the user's memberships, or choose a 'view N matching' row to switch to the Projects or Users tab with the table pre-filtered to your search term.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Union admins (project group admins) now appear with a distinct green 'Union admin' badge in the union portal user search results and in the Role column of membership tables, distinguishing them from project admins and basic users.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Clicking a tag badge or the 'Records tagged' count now produces a search using the tag keyword -- for example, tag==\"Steward\" -- so the search bar shows a readable name instead of an internal ID.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "When you delete a status report or remove a spreadsheet template report, the confirmation now tells you how many scheduled deliveries will be cancelled.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Phones, emails, and addresses marked as bad now appear with a red strikethrough directly in the Quick view popover, so you can see at a glance which contact info is flagged without opening the edit dialog.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search builder has been rebuilt as a modern React panel featuring a live Broadstripes search language preview, a per-type match count (e.g. '3 people, 2 orgs'), a searchable field picker with a Recently used group, drag-and-drop rule reordering, an inline subquery editor for relational fields (employer, employees, leader), and a 'Search and close' button on the search results page.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The 'Contacts matched' readout in the save-search dialog now shows a per-type breakdown when your search returns both people and organizations -- for example, '3 people, 2 orgs, 5 total records' -- instead of a plain total.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Job titles (Classifications) are now managed in a dialog that opens directly from the Settings menu, replacing the separate settings page; the dialog supports inline renaming, merging multiple titles into one, bulk delete, and CSV download.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Project admins can now define custom keyword synonyms in the new Search settings dialog -- for example, mapping 'site' to the employer keyword or 'steward' to the leader keyword -- so searches using your team's terms find the same contacts as the built-in keywords.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The Events settings page has been redesigned as an interactive editor: events appear as expandable cards, changes save automatically without a separate Save button, and there is no longer a separate 'edit mode' to enable.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Scheduled Jobs page now shows an amber warning icon next to any scheduled report that is emailing an undeliverable recipient address; project admins can open the edit dialog to see which addresses are affected and re-enable delivery or remove the recipient.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "You can now attach calendar invite files (.ics) to bulk emails.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Typing special characters such as '[', '.', or '*' in a column search box (in the layout builder or report column picker) no longer silently breaks filtering -- those characters are now treated as literal text.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Working with records",
    description: "Clearing all content from a phone, email, or address row that holds the primary star now automatically moves the star to the next valid non-blank entry; if no valid primary can be assigned, saving shows a clear error message ('A primary phone must be selected' or 'A primary address must be selected') instead of a silent or cryptic failure.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Users can now manage their email notification preferences -- choosing which categories of Broadstripes email they receive, such as product notifications and feature update announcements -- directly from the Notification preferences section of their account settings page.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new 'Set assessments' bulk action lets project administrators set or clear the assessment code for multiple selected contacts at once, with an optional timeline note, directly from search results.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When the 'Open in new tabs' toggle is off in the project switcher, hovering a project row now reveals a button to open just that one project in a new tab without changing your toggle preference; holding Cmd (Mac) or Ctrl (Windows/Linux) while selecting any project also inverts the toggle for that one selection.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Scheduled reports now run and deliver correctly even when the account that originally created the schedule has since been deactivated from the project.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Scheduled report generation is now skipped when all configured recipients are inactive, preventing the creation of reports that no one can receive.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Bouncing emails page now shows employer notification addresses and organization leader notification addresses in addition to BCC addresses, and links directly to the employer or leader record where the address can be corrected.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "In the data imports grid, the # (ID) column is now fixed-width and always visible (it cannot be hidden or resized), and the total-rows statistics column is slightly wider so icon and count labels fit without crowding.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "When a contact's email address is undeliverable, a yellow warning triangle now appears next to the address in the Contact Information card, in the card header with a link to the Bouncing emails page, and on the Edit tab of the record.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A new Bouncing emails page in Settings shows all BCC recipients on your project's public forms that email providers are currently rejecting, and lets you re-enable delivery once a mailbox is fixed.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Downloading large report files no longer times out; reports now download directly from file storage via a short-lived link instead of being buffered through the application server.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The tag picker now opens next to the person circle in the Workplace Explorer instead of appearing in the upper-left corner of the screen.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The confirmation toast shown after scheduling a report now links to the Scheduled Jobs page instead of the former Scheduled Reports page, which has been removed.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When a large backlog of unread notifications is pending, at most five notification toasts now appear at a time; any additional notifications roll up into a single '...and N more notifications' summary toast so the toast stack stays readable and closeable.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Dragging a worker onto another worker in the Workplace Explorer now always shows a confirmation dialog before saving the leadership assignment, preventing accidental assignments or overwrites.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When editing an email address in a contact info card, Broadstripes now checks the format as you type and shows an inline warning if the address is not valid.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The 'New tag' shortcut in the left navigation bar now opens a create-tag dialog on any page, so you can create a tag without first navigating to the tag lists page.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Organizing dialog's leader panel now consolidates all leader actions -- assign, change, terminate, delete, and leadership history -- into a single actions menu, replacing the previous separate change and remove buttons.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The settings command menu now offers two per-item ways to open a page in a new tab without changing the global toggle: hover over a row to reveal an arrow button that opens that page in a new tab, or hold Cmd (Mac) or Ctrl (Windows/Linux) while selecting to invert the toggle for that selection only.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The Data Type selector in the custom field form now appears directly below the Field type selector, making it easier to find when creating a numeric or date custom field.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Tags section on a contact's detail page now uses the same interactive tag cell as search results, letting you add, remove, create, and edit tags directly from the record without returning to search results.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The 'Other recipients' field in the public form Email tab now highlights invalid email addresses in red and lists the specific tokens that don't look valid, so admins can fix them before saving.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "BCC recipients in the 'Other recipients' field are now delivered correctly when addresses are separated by semicolons or newlines in addition to commas.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "In the Shop Roster, entering an invalid email address now shows a clear error immediately and restores the previous value, rather than letting the save attempt fail on the server.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Section labels in the tag cell now read 'Personal tags' and 'Shared tags' instead of 'Personal lists' and 'Shared lists' to align with the app's tagging terminology.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Admins can now control whether basic users are allowed to share saved searches, layouts, and sorts with the project -- a new 'Save and delete shared objects' toggle in General Settings > Basic user permissions enables or disables this capability.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "When a project admin has disabled the 'Save and delete shared objects' permission for basic users, the 'Shared' visibility option in the save-search dialog is now shown as disabled rather than failing silently on submit.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Scheduled jobs can now be edited directly from the Scheduled Jobs page: click the ellipsis menu on any job row and choose Edit to update the job's name, schedule (one-time or recurring, with an interactive sentence-token editor and a next-run preview), and email recipients. The Edit option is grayed out for jobs that are currently running. Deletion now uses a confirmation dialog instead of a browser prompt.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Data management",
    description: "'Tag lists' has been renamed to 'Tags' throughout the app -- the sidebar link, page title, and toolbar buttons all say 'Tags' -- and the create and edit flows now open an in-page dialog instead of navigating to a separate form page; the status toggle in the table switches tags active or inactive without opening the editor.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The bulk action menu items for tag membership have been renamed: 'Add to list' is now 'Add tag' and 'Remove from list' is now 'Remove tag'.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The contact timeline entry dialog no longer closes when you click outside it or press Escape, protecting any notes you have started from accidental loss. Use Cancel or the X button to exit without saving.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "When a BCC recipient address on a public form becomes undeliverable, an amber warning icon now appears next to the form name in the Public Forms list and on the Confirmation email tab; form managers can re-enable delivery directly from the tab (up to 2 times per address), and project group admins and form creators receive an email notification.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Search",
    description: "On the home panel, searching by name now always queries the server as you type, so contacts not in the recently-updated preload list are findable -- previously, typing a name that matched no preloaded contact showed 'No contacts found' even when that person existed in the project.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "You can now download attachments for your selected contacts as a ZIP file directly from the Reports menu in search results -- choose to include all attachments or only those matching a file name and/or upload date range, and pick whether the ZIP organizes files into per-contact folders or uses a flat naming scheme.",
    releasedate: "2026 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form settings panel has been redesigned: tabs are renamed (Employment is now Workplace, Form content is now Content and attachments, Email is now Confirmation email, and Other options is now After submission), attachments moved to the Content and attachments tab, and the submission confirmation message moved to the After submission tab.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Invitation emails have been redesigned with a clear header, a styled Login button, a callout block for the inviter's personal message, and the invitation expiry date -- and the subject line now identifies the specific project the user is being invited to.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Tags section in the Quick view panel is now interactive: click any tag badge to see a summary card with details and remove or edit actions, and click the Tags heading to open the full tag picker to add or remove tags without leaving the page.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Settings",
    description: "Settings cards on the General Settings page no longer disappear or stack incorrectly when you resize the browser window to a narrower width.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Logo uploads in the public form settings now save correctly; the form was missing the multipart encoding required to transmit the file, so uploaded logos were not being stored.",
    releasedate: "2026 July"
  }, {
    type: "Fixed",
    category: "Search",
    description: "On Safari, the narrow columns at the left of the search results table (selection checkbox, entity type, and quick view button) no longer spread apart due to the browser's automatic table layout.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "Admins can now create reusable SMS message templates -- complete with merge fields and emojis -- from a new Templates tab in the SMS section; any user with bulk-text permission can pick a saved template from the send-text drawer to pre-fill their message.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Contact info entries now support a 'Link (URL)' type: the stored URL is displayed as a clickable link that opens in a new tab, and bare addresses like 'instagram.com/janedoe' are automatically prefixed with https://.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "The bulk text compose form is now a minimizable side drawer: you can shrink it to a bar at the bottom of the page while you keep working, then click the bar to expand it and resume your draft.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The help text for the 'Data imports can create multiple employments' toggle in General Settings now clarifies that when the setting is off, imports will update or overwrite a matching worker's existing employment data instead of creating a new employment record.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "You can now attach a PDF file (up to 5 MB) to a text message -- both individual and bulk SMS -- in addition to images; PDF attachments appear as a downloadable link in the sent-messages history.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The timeline column filter in search results now correctly preserves your selected types and timeframe when other layout changes are made, and can be opened and closed using the keyboard.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The General Settings page now saves automatically when you change any setting -- there is no Save button. Settings are organized into cards (Defaults, Basic user permissions, Visibility, Data imports, Language) and controls use toggle switches instead of checkboxes.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The timeline column filter has been redesigned: a segmented button bar (All, 1w, 2w, 1m, 3m, 6m, 1y) replaces the timeframe dropdown, item-type checkboxes have more breathing room, and the selected timeframe is confirmed in plain language below the buttons.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The Default column in the assessment codes table is now an interactive toggle: click the checkbox to set or clear the default code directly in the table without opening the edit form.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Assessment option controls are now displayed as toggle switches, the 'Display timeline dialog' setting has a clearer label and a new info button explaining when the dialog appears and that it is skipped during data imports.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Columns that display both a sort icon and a hide-column button can no longer be resized narrow enough to cause those two icons to overlap.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "You can now upload a profile photo from your User settings page: pick or drag in a JPEG, PNG, or WebP image, crop it to a circle with a zoom slider, and save -- your avatar disc in the navigation bar updates immediately without a page reload.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Your avatar disc in the top navigation bar now reflects your permission tier through color: amber for super admins, green for union admins, rose for project admins, and sky blue for basic users; the color appears as a border ring around your photo or fills the entire disc when showing initials.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "The sent message detail page now displays any media attached to a text message, with a clickable image preview and a Download button to save the attachment to your device.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Home tab is now available to every user and project by default and is the first tab shown when you open your homepage.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Two new checkboxes in General Settings ('Create people' and 'Create organizations') let administrators control whether basic users can add new person and organization records; both are enabled by default so existing project behavior is unchanged.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Working with records",
    description: "Deleting the primary phone or email on a contact now automatically promotes another entry of the same type to be the new primary, so the contact's primary contact info is never left blank when other entries exist.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Uncovered and Unassigned columns on the Turf tab now display each shop's count alongside its percentage of total workers, and an info button on the column header explains exactly which workers the metric counts.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Invited members whose invitation link has expired now appear with an 'Expired' indicator in the Project members table, and you can re-send a fresh invitation link to them directly from the new Invitation column or the member actions menu.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The project switcher trigger now shows a down-arrow indicator, each project in the list displays a colored badge with the project's initials, and users who belong to only one project see a plain label instead of an interactive button.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Project member actions (Deactivate, Reactivate, Re-send invitation, Cancel invitation, Edit permissions, Break link) are now available from an ellipsis menu in each member's row, keeping the table compact while making every action reachable in one click.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The settings button in the top navigation bar is now a compact icon-only button and appears to the left of the user avatar.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When following an invitation link that has expired or been superseded, you now see a clear 'Invitation Link Expired' page explaining the situation and providing a support email address, instead of being silently redirected to the login page.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Super-admins and members whose projects span multiple project groups now see a color-coded group badge next to each project in the project switcher; projects without a group show a gray 'No group' badge.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A new user disc (blue circle showing your initials) now appears in the top-right navigation bar; clicking it opens a dropdown with User settings, Your project settings, Help center, and Log out -- these items have moved out of the Settings menu into their own dedicated menu. Press Cmd/Ctrl+U to open it from the keyboard.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Working with records",
    description: "When saving contact information fails because a field is too long, the error notification now shows the specific validation message (for example, 'First name is too long') so you can identify and correct the problem.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Public form name, email, and phone fields now enforce character limits in the browser, preventing a submission error caused by entering text that exceeds the database limit.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Communications",
    description: "Union admins (project group admins) who do not have direct membership in a project can now send bulk email from that project using their own email address; previously they saw 'Bulk email unavailable' because the sender list was empty.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "In data tables, the sort icon and hide-column button in column headers no longer overlap; the hide-column button is now correctly positioned to the right of the sort icon, and both icons share a consistent grey shade.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Communications",
    description: "Right-clicking anywhere in the email message editor now opens the browser's native context menu (with Cut, Copy, and Paste) instead of the editor's own menu, so you can paste text directly into the editor body.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "When a bulk 'Assign to leader' action fails, the error notification now displays the actual error message instead of escaped HTML markup.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Limited visibility",
    description: "Users with limited visibility can now reliably open records that recently entered their scope, even when the visibility cache has not yet refreshed; the app performs a live check and silently queues a cache update in the background.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Customize",
    description: "Custom fields now have an 'Editable by admins only' option: basic users can see the field's current value but cannot change it, while admins retain full edit access. The field appears with a lock icon on contact edit forms and as read-only text in the Call Center.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The confirmation dialog shown when granting a basic user the 'Can perform data imports' permission now always shows the full scope of that permission, including the ability to set admin-visible-only and admin-editable-only custom fields and to bypass limited visibility.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "In the Workplace Explorer, worker circles that are too small to show the full name now display the worker's go-by name (nickname or first name) before falling back to initials; when two workers share the same go-by name, a last initial is added ('John D.' vs 'John M.') to keep them distinguishable.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Admins can now transfer ownership of an existing saved search to another user by editing the search and selecting 'For someone else'.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "On projects with Labor Organizing enabled, you can now assign leadership directly in the Workplace Explorer by dragging a worker circle onto another worker; if the dragged worker already has a different leader, a confirmation dialog shows the current leader's name and assignment date before making any change.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Events, Saved searches, Tag lists, and Scheduled jobs are now accessible to all users via the Settings menu, not just project administrators.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The project switcher has been redesigned as a searchable command dialog: click your project name in the top navigation bar (or press Cmd-. / Ctrl-.) to open it, type to filter projects, and use the new toggles to sort alphabetically or open projects in new tabs.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "In-app notification messages now appear at the bottom center of the screen instead of the top right, with a close button always visible on each message.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The Settings navigation in the top bar is now a searchable command menu: click the gear icon or press Cmd/Ctrl-K to open a dialog listing all available settings pages, with a 'Recently used' group at the top showing your most-visited pages, and a toggle to open pages in new tabs.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The 'View as PDF' link on the Coverage Report by Leader and Department Structure Report now correctly preserves the selected organization and leader role filters when generating the PDF.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "In the import preview, organizations that already exist in the project are now shown in bold in the shop structure hierarchy tree, making it easy to distinguish existing organizations from new ones being added.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The Turf tab no longer crashes when an organization in your territory is missing assessment chart data.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Organization-type public forms now have two new email recipient options: you can notify the submitted organization's direct leader and/or the leaders of its parent organizations when a form is submitted.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "Sending a one-off text message from a contact's Quick view now works from any page in the app, including the Workplace Explorer, and opens in a modernized dialog with a clearer character counter and send-status feedback.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Organization record headers no longer show a placeholder assessment disc when the project does not use organization assessments; the header area is now left blank.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Settings",
    description: "The settings dialog keyboard shortcut (Cmd+K on Mac, Ctrl+K on Windows/Linux) no longer opens when Shift is also held, preventing accidental triggers from shortcuts that include the Shift key.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The single-key keyboard shortcuts previously available in the search results view (such as / to focus the search box, q for quick search, a to select all results, and others) have been removed; all actions remain accessible through the search results toolbar and menus.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "When 'Append form content to email body' is enabled on the Email tab, the submitted form data now correctly appears in the email body instead of being blank.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Maps",
    description: "The turf panel no longer crashes when a session expires during a data load; it now shows an error message instead of becoming unresponsive.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The assessment column in search results now uses a visual disc selector: click the colored circle to open a dropdown of assessment codes, each shown with its colored disc; hovering the disc shows when the assessment was last set and by whom.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The address form now displays a red 'Item is a duplicate for this contact' warning on any address card that shares the same text as another address on the same contact, visible even when the card is collapsed.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The 'Assessments Over Time' and 'Assessment Snapshot' charts on the Project Overview tab and organization pages are now interactive: click legend items on the stacked area chart to show or hide individual assessment codes, and hover over any chart area or slice to see a tooltip with the exact count.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The department hierarchy preview on the data import page is now an interactive tree: click or use Enter/Space on any branch node to expand or collapse it, making it easier to explore the employer structure that will be created during import.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Admins can now enable assessments for organizations: a new 'Allow assessments for organizations' option on the assessment settings page lets your project track assessment codes for workplaces as well as workers. The page also replaces the previous read-only timeline-dialog checkbox with an interactive 'Assessment options' panel.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Explorer tab on any organization's page now shows an interactive bubble chart of the org hierarchy: sub-organizations appear as nested circles and workers appear as colored dots inside them. You can zoom in by clicking an org, pan by dragging, search within the subtree, color workers by assessment, role, or leadership count, and click any worker or org to open a Quick view.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Communications",
    description: "The 'Compose it now' option in the bulk email drawer now uses a rich HTML editor with a full formatting toolbar, a searchable merge field picker that shows which field (Subject or Message) will receive the insertion, and an emoji button.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "The Leader Roles settings page has been rebuilt as an interactive data grid: drag rows to reorder roles, toggle Represents leadership, Leaders are covered, and Followers are covered inline without opening the edit form, and delete roles from a confirmation dialog that shows how many contacts will be affected.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Organization public forms now include an Organization tab where admins can configure an org picker field, letting form submitters search for and select an existing organization from the project.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The automated imports table now loads the most recent entries immediately and fetches the full history in the background, preventing timeouts on projects with large numbers of automated imports.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The assessment dropdown in the timeline entry dialog now displays colored assessment discs next to each option, making it easier to identify and select the right assessment code at a glance.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The emoji picker on the contact timeline entry form now autofocuses its search field when opened, so you can start typing to find an emoji immediately without an extra click.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Settings",
    description: "When a user with a deactivated membership clicks an invitation link, they now see a clear message that the invitation is no longer valid and are directed to contact their project administrator, instead of being incorrectly processed.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Clicking the 'Stay logged in' link in the session timeout warning now correctly dismisses the warning toast.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When multiple notification toasts are visible at the same time, a 'close all' button now appears so you can dismiss all of them at once.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Maps",
    description: "SUM and CHECKOFFCOUNT calculated columns on the turf panel now display as large standalone numbers instead of donut progress bars, reflecting that these totals are not a share of worker count.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Timeline",
    description: "The Notes field in the contact timeline entry form now includes an emoji button, letting you insert emojis at the cursor position when recording timeline entries.",
    releasedate: "2026 June"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Scheduling a report now always shows a confirmation toast, even when two scheduling actions are taken back-to-back.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Contact info editing (phones, emails, and addresses) now opens in a dialog that shows the person's name in the header, with Cancel and Save buttons and an inline warning if you try to close with unsaved changes.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Deleting a phone, email, or address now shows an inline 'Undo' option instead of a confirmation popup, letting you restore the entry before clicking Save.",
    releasedate: "2026 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Turf tab (formerly 'Your Turf') has been redesigned: workplaces are now grouped by leader in labeled cards, you can filter shops by name with Cmd/Ctrl+K, hide individual shops from view and restore them later, and manage which metric columns are visible.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Status reports and spreadsheet templates on the Turf tab are now accessible from dropdown buttons in the toolbar, each with a keyboard shortcut (Cmd/Ctrl+B for status reports, Cmd/Ctrl+U for spreadsheet templates).",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The 'Add workplaces to view' dialog on the Turf tab now lets you queue multiple workplaces before adding them all at once, and includes a 'Hidden turf' tab to restore shops you have previously hidden.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search results header now displays the total count prominently with a smart label ('people', 'orgs', or 'contacts') that reflects the composition of your results, alongside a 'Showing X-Y' page range that updates as you scroll or page through results.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Leaders tab now loads employer information progressively: senior leaders show their employer immediately on first paint, and other leaders fill in as they become visible, so the panel is interactive sooner on large projects.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Status reports and spreadsheet template reports on the Turf tab now appear as dropdown buttons with filterable lists and keyboard shortcuts (Cmd/Ctrl+B for status reports, Cmd/Ctrl+U for spreadsheet templates).",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Turf tab (formerly 'Your Turf') has been redesigned: shops are now grouped by their assigned leader, a filter box lets you search by shop name (Cmd/Ctrl+K), and a new Add workplaces to view dialog shows each result's hierarchical name, worker count, and leader. Assigned shops can be hidden from view and restored from the dialog's Hidden tab.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Leader cards on the Leaders tab now show the leader's assessment disc (colored circle with their assessment code) instead of an initials badge; hovering the disc shows the assessment details and who set it. People and org follower counts are now clickable links that open a search for those followers in a new tab.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Leaders tab filter now defaults to filtering by workplace, with a 'Filter by...' dropdown to switch to filtering by leader name instead. A 'Workplace' sort option has also been added to the Sort by dropdown; leaders with no workplace always sort to the bottom.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "The Leaders tab on the homepage has been redesigned as a card-based panel. Cards now show each leader's role (color-coded), employer, follower counts, and a link to generate their PDF report. New controls let you filter by name, sort by role, last name, first name, or follower counts, and (on projects with roles) filter by role and toggle in leaders who hold a role but have no followers yet.",
    releasedate: "2026 May"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The result count shown in the recent searches popover now reflects the most recent run of that search, not the historical maximum.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Mailing Labels dialog now closes automatically after clicking Generate, so you are returned to your search results without having to dismiss the dialog manually.",
    releasedate: "2026 May"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Once a data import file is uploaded, it can no longer be replaced. The file input is removed after a successful upload and only a download link to the uploaded file is shown.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "You can now toggle infinite scroll on or off from the search results page using the Infinite scroll switch in the controls bar; your preference is saved automatically.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "The Tag lists column in search results now shows expand and collapse controls in the column header, letting you expand or collapse all rows at once. Individual rows with more than 12 badges show a '+N more' button, and a 'Show less' button collapses them back. Your column-wide preference is saved across page loads.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "When enabling limited visibility on a project, admins are now warned if any basic users already hold the 'Can perform data imports' permission (which bypasses limited visibility), and can remove that permission from all affected users in the same step.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The search results header has been redesigned with a cleaner layout, a contact count summary, and updated pagination controls.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Tag lists displayed in search results are now ordered by most recently created first.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Relationship groups in search results now include a 'Show less' button, so you can collapse an expanded group back to its initial view after clicking '+N more'.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Settings",
    description: "Granting the 'Can perform data imports' permission to a basic user now requires acknowledging a warning dialog explaining the risks; in limited-visibility projects the warning also explains that imports bypass visibility restrictions.",
    releasedate: "2026 May"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The Limited Visibility settings dialog is now wider, preventing buttons from stacking when editing a member's visibility.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Toast notifications no longer appear alongside inline messages on public-facing pages, preventing auth-related messages from displaying twice.",
    releasedate: "2026 May"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Duplicating a public form now correctly attributes the new form to the user who performed the duplication, rather than inheriting the original creator's name.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Leader role coverage settings are simpler. New leader roles open with both Leaders are covered and Followers are covered already checked, and the two options are now tied together: unchecking Leaders are covered automatically clears and disables Followers are covered, since followers can't count as covered if their leaders don't.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Quick view dialog now collapses sections with many entries — contact info, addresses, unique IDs, and badge sections — to show only primary items by default, with a toggle to expand all.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Maps",
    description: "The map pin icon next to an address in the Quick view dialog is now a clickable link that opens the address in Google Maps.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Relationships on a contact record now display inline, showing each related contact's name next to a Quick view icon; groups with more than 6 contacts show a '+N more' button to expand the full list.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "Tag lists on a contact record now appear as color-coded pill badges organized into 'Personal lists' and 'Shared lists' sections with counts; clicking a badge opens that list's search results in a new tab.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Working with records",
    description: "A person's social group memberships now appear as color-coded pill badges on their contact record; when the person belongs to groups from multiple organizations, each organization gets its own subheading.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "API",
    description: "The contacts API now supports requesting code/assessment values. Include a code or assessment in the fields parameter to retrieve the current assessment for each contact.",
    releasedate: "2026 May"
  }, {
    type: "Fixed",
    category: "Admin",
    description: "Followers can no longer be assigned to organizations. Previously, a few paths allowed organization-leadership assignments that were never supposed to be possible.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Social Groups",
    description: "The social groups page now loads substantially faster.",
    releasedate: "2026 May"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Basic users can now be granted two additional per-user permissions: Can manage public forms and Can perform data imports. Both options appear in the Miscellaneous section of the invitation form and on the membership edit form, alongside the existing Can download CSV / XLSX files and Can merge contacts options.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The contact info popover has been redesigned as the Quick view dialog. A dedicated Quick view column with an always-visible id-card icon replaces the previous hover-revealed info icon, and the dialog now has two tabs: Info (contact details, IDs, addresses, organizing info) and Quick actions (shortcuts for adding a timeline item, calling, sending an SMS, or jumping to the full record). Section headers in Contact info and Addresses also show an always-visible pencil icon for inline editing.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Union portal",
    description: "Union Portal projects can now be tagged. Apply, remove, and filter by custom-colored tags from the projects table, including bulk apply/remove via the row actions menu.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Quick links can now be renamed inline. The owner of a quick link (or an admin for shared links) can rename it directly from the quick links area.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "A new Mailing Labels report generates printable PDFs of contact addresses formatted to standard Avery label templates, accessible from the search results report menu.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "When editing a public form, checking a contact info field (e.g., cell phone) now auto-selects its matching opt-in field, and unchecking auto-deselects it. Manual changes to other opt-ins are preserved.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public forms list now includes a submission count column, and column types and filters on that table have been corrected so sorts and filters behave as expected.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public form submissions that match an existing contact now update that contact in place instead of replacing it through a destructive merge. The matched record's ID, history, and references are preserved, and addresses, phone numbers, and custom field values dedup against existing records.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Bulk email recipient selection can now be limited by address type, giving admins control over which contact info types are eligible to receive bulk email.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Tree search now finds all leaders of a person, not just direct leaders, so leadership-based searches return the full chain.",
    releasedate: "2026 April"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Saved sorts that referenced a deleted or renamed custom field or calculated column no longer break search. Stale items are skipped, and the search falls back to the project's default sort if all referenced items are gone.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Selecting a saved search from the search dropdown while on the maps page now opens that search on the map, rather than navigating away to the search results page.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "Search result rows have been redesigned: the entity cell now leads with the assessment disc, spacing has been tightened, and result menu icons are color-coded for quicker scanning.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Tag lists and tag groups now display with cleaner, more consistent styling across the app.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The legacy SMS-based two-factor bypass has been removed. All accounts now go through the standard 2FA flow for stronger security.",
    releasedate: "2026 April"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Marking a data import for deletion no longer fails when the underlying CSV file is malformed. File reprocessing is now skipped on the deletion transition.",
    releasedate: "2026 April"
  }, {
    type: "Fixed",
    category: "Email",
    description: "The Unlayer email editor no longer adds extra whitespace to email content.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Call pool list view now includes additional columns and a call history panel showing recent activity for each contact in the pool.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "List call pools now display a session metrics dashboard above the target list. The dashboard shows the caller's own counts (this session, today, all time in this pool), a progress bar that breaks the pool down by call status, and pool-wide totals (people, calls placed across all callers, and completed).",
    releasedate: "2026 April"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Renaming a contact from the Quick view dialog now properly handles authorization for limited-visibility users, and rename changes update the corresponding search results row dynamically.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Email tab on the public form editor has an updated, cleaner UI.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The user invitation form has been refreshed with clearer copy, improved layout, and friendlier error messages.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The in-call Call Center UI has been polished with refined spacing, typography, and visual hierarchy for easier use during a call.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The saved searches table now shows a warning triangle (instead of a ditto mark) on items whose sort or column references are no longer valid, making stale entries easier to spot.",
    releasedate: "2026 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "List call pools now display a Status column showing each person's call progress: Call (not yet called), Follow-up (needs another attempt), Complete (reached), or Locked (another caller is active). A progress bar at the top summarizes pool completion at a glance.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "Data imports now support setting a primary address or phone number. New \"Is primary\" columns allow you to designate which contact info record should be primary during import, automatically demoting any existing primary records.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Data management",
    description: "The Bulk Tasks page has been redesigned with sortable and filterable columns, color-coded status badges, and improved message display combining success and failure details.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Timeline",
    description: "Editing a timeline entry no longer silently clears the contact's entity code assessment when the entry has no code assigned.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Toast notifications with long text no longer overflow and block the Projects and Settings menus. Long strings now wrap properly and the close button remains accessible.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Editing a public form no longer unexpectedly checks opt-in permission fields that were previously unchecked.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Pie chart label display preferences are now properly retained when editing a chart.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Email",
    description: "Non-image SMS attachments (PDFs, documents, etc.) now display as downloadable links instead of broken image placeholders.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Saving an invalid event step now displays a clear error message instead of failing silently.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "API",
    description: "The contacts API now supports external system IDs as fields. You can include any external system's key name in the fields parameter to retrieve its value for each contact, with case-insensitive matching.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Sent email and SMS message pages now automatically refresh to show delivery status updates without requiring a manual page reload.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The saved search dialog now includes an option to create a Quick Link at the same time. Admins can assign Quick Links to themselves, another user, or a user group.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Mobile",
    description: "The mobile edit page now displays the short custom field name instead of the long display text, improving readability on smaller screens.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Attachments tab now features a styled 'Choose file' button with filename display, replacing the default browser file input. Attachment counts appear as circular badges on the tab.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The 'save search' text link on the search results page has been replaced with a prominent 'Save this search' button for better visibility.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Email entries in the person timeline now display the email number as a clickable link that opens the full email, with the subject line shown separately for clearer presentation.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Unassessed items in the person timeline now display with a neutral gray background instead of appearing unstyled.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Data management",
    description: "Bulk operations (adding to lists, assigning leaders, updating custom fields, and other actions) now automatically retry database conflicts, improving reliability when multiple operations run concurrently.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Search result navigation now properly handles expired scroll contexts, preventing errors when paging through large result sets after a period of inactivity.",
    releasedate: "2026 March"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Search now properly validates type filter parameters, preventing errors when invalid filter values are passed.",
    releasedate: "2026 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Assessment codes now support custom colors. Admins can assign custom hex colors to any entity code using a color picker, which displays consistently across the app including entity headers, info popovers, search results, and timeline items.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Call center scripts now support ASSESSMENT and CODE sub-commands on buttons, allowing scripts to programmatically set a person's entity code when a button is clicked. The call header displays the assessment change in real-time.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Email templates no longer require saving before sending a test email. The 'Send a test' button is now enabled immediately when opening a saved template.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "An emoji picker has been added to all SMS text areas (bulk send, one-off messages, and conversation pages).",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The dialog has been enhanced with improved styling, larger width, and can now be closed with the Escape key.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Data import stop and restart actions now properly handle stale requests, preventing errors when an import has already been stopped or restarted.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "SMS notification settings now properly validate that a phone number is provided before attempting to send confirmation texts.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Address and telecom info editors now safely handle null entries from deleted items, preventing crashes when managing contact information.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "The submitted forms table now properly handles API errors and displays user-friendly error messages when data fails to load.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms now include a PDF filename dropdown that allows customization of the PDF filename pattern using tokens. System tokens (first name, last name, date, time) and form field tokens can be inserted to create dynamic filenames.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Contact record info popover now allows inline editing of person names (first, middle, last, nickname) and organization names directly from the popover interface.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Assessment/code history badges in the entity info popover now display with visual hierarchy, showing the current assessment larger and with a 'Current' label in the tooltip.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Search history is now synchronized across the search dropdown and sidebar in real-time. When a search is hidden in the history dialog, it immediately disappears from all locations.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The filter dropdown button now correctly highlights in red when a non-default type filter is selected, providing better visual feedback.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The saved search dialog now properly disables the save button when 'For someone else' visibility is selected but no user is chosen.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The search input field on mobile devices now has improved minimum width constraints to prevent layout issues on smaller screens.",
    releasedate: "2026 February"
  }, {
    type: "Fixed",
    category: "Call center",
    description: "Custom field date values in the Call center now display correctly with proper formatting.",
    releasedate: "2026 February"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Universal BCC emails are now sent separately before other recipients, with a flagged subject and body to clearly identify them as BCC notifications.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new Saved Searches index page has been added with React Data Grid functionality, allowing users to view, edit, duplicate, and manage all saved searches in one place.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Saved searches can now be duplicated, allowing users to create variations of existing searches quickly.",
    releasedate: "2026 January"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Timeline timestamp searches now correctly handle timezone conversions, fixing issues where searches for 'today' or specific dates were returning incorrect results.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Shared quick links now work correctly when they reference personal saved searches, expanding collaboration options.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms can now be duplicated from the Actions menu, making it easier to create similar forms quickly.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Public Forms table has been migrated to React Data Grid with an Actions menu (ellipsis icon) for managing forms, replacing the previous action columns.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Union portal",
    description: "Union admins can now add members to projects through a new Add Members page with search functionality and role-based visual indicators.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "SMS number provisioning now includes an alert dialog warning users about potential delays in number activation.",
    releasedate: "2026 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Search layout permissions have been enhanced. Basic users can no longer edit shared layouts created by other users. Basic users may continue to create and edit their own layouts.",
    releasedate: "2025 December"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "A new SMS Numbers page provides a more user-friendly interface for managing SMS numbers, including file download capabilities and auto-sizing tables.",
    releasedate: "2025 December"
  }, {
    type: "Fixed",
    category: "Union portal",
    description: "The union portal project creation dialog was not adding SMS messaging to a project when selected. This has been fixed.",
    releasedate: "2025 December"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The multi-value search did not parse commas within quotes correctly. This has been fixed.",
    releasedate: "2025 December"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Date columns in the Call center now sort by time in addition to date, providing more precise ordering of call records.",
    releasedate: "2025 December"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A new logout button and instructional messaging have been added to the No Active Projects page.",
    releasedate: "2025 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A new public form option seperates the address fields into four fields: street address and unit, city, state, and zip code.",
    releasedate: "2025 November"
  }, {
    type: "New/Improved",
    category: "Social Groups",
    description: "The organization selection input on the <b>Your Turf</b> page now displays all potential input matches.",
    releasedate: "2025 October"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The CHECKOFFCOUNT formula would not return a value when an event name included a space. This has been fixed.",
    releasedate: "2025 October"
  }, {
    type: "New/Improved",
    category: "Social Groups",
    description: "The Add Members page of Social Groups displays the full hierarchal name of an organization.",
    releasedate: "2025 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The confirmation page of a public form is now centered by default",
    releasedate: "2025 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The logo image on public forms are now centered by default",
    releasedate: "2025 October"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Autocomplete searching on first, last, middle, and nickname fields have been improved. ",
    releasedate: "2025 September"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "There can be only one Unique ID fieldon a public form. ",
    releasedate: "2025 September"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "The checkbox and email functionality on organization public forms was not present on the form's edit page. This has been fixed.",
    releasedate: "2025 September"
  }, {
    type: "Fixed",
    category: "Email",
    description: "Merge field insertion via the merge field dropdown was inserting the merge field at the end of an email instead of the active cursor location. This has been fixed.",
    releasedate: "2025 September"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Nickname field is now available for use on public forms. ",
    releasedate: "2025 September"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Broadstripes ID field is now available for matching existing records when submitting a organization public form. ",
    releasedate: "2025 September"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Merge fields can be used in the confirmation email message of a public form.",
    releasedate: "2025 September"
  }, {
    type: "New/Improved",
    category: "Union portal",
    description: "All users that have membership in projects associated with a union can be viewed in the union portal. Union admins can deactivate all memberships for a listed user in the union portal. ",
    releasedate: "2025 August"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Data imports with timeline-tracked event steps and timeline note columns did consistently create timeline items. The import will now create the standard timeline-tracked event step entry and additional timeline entry",
    releasedate: "2025 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Phone numbers displayed in the header of the Call center are now clickable call-initiating links.",
    releasedate: "2025 August"
  }, {
    type: "New/Improved",
    category: "Union portal",
    description: "A union portal allows designated union admins to view all projects associated with a union and create new projects for the union. Union admins also have the ability to disable projects or make read-only.",
    releasedate: "2025 July"
  }, {
    type: "New/Improved",
    category: "Maps and shapes",
    description: "Turf groups can be created by a new turf cutting feature on the Maps page. Please reach out to support to have the feature enabled for your project. ",
    releasedate: "2025 July"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Enhancements to the Call center allow for Large random call pools load more efficiently.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Bulk text and email messaging in progress can be stopped on the index page. This will stop any messages that have not already been sent.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The contact type filter now only includes contact types for which there are existing records.",
    releasedate: "2025 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The magic header button on the search results page was unresponsive. This has been resolved.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Users can now use comma seperated values in parantheses in a search to search for multiple values in a field." + "For example: <span class='searchlang'>shift = (AM, PM)</span> will search for either AM or PM in the Shift custom field." + "<span class='searchlang'>membertype = (Active Member, Retired Member, Non-Member)</span> will search for either Active Member, Retired Member, or Non-Member in a custom field called \"Member Type\".",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Scheduled email messages can be cancelled on the Email index page.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Scheduled SMS messages can be cancelled on the Text Messages index page.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "The body and details of a sent email will be opened in a separate tab when the user clicks the corresponding icon in the timeline entry of the email.",
    releasedate: "2025 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Users were unable to create new timeline item types. This has been resolved.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The messaging and call center options have been moved to a new <b>Communications</b> menu on the Search results page.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Users may can mark a call pool as inactive. This will disable the Call center for that pool. This also allows a call pool to exist without a active call center script.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The <b>Assign to Leader</b> bulk action on the Search results page now provides notification of initiation and completions. This status of this action can also be monitored the Bulk tasks page.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Enhancements to the app interface have been made to improve the functionality and ease of use.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The <b>Delete</b> bulk action on the Search results page now provides notification of initiation and completions. This status of this action can also be monitored the Bulk tasks page.",
    releasedate: "2025 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Geocoding issues with Canadian addresses have been resolved.",
    releasedate: "2025 June"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center script language supports an SMS MESSAGE instruction that allows pre-scripted one-off messages to be sent to call recipients by callers",
    releasedate: "2025 May"
  }, {
    type: "Fixed",
    category: "Call center",
    description: "Bad phone numbers were not being indicated as bad in the Call center header. This has been corrected.",
    releasedate: "2025 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Scheduled SMS jobs are visible on the Sent text page before the scheduled time.",
    releasedate: "2025 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The All project settings page is accessible in the Settings menu.",
    releasedate: "2025 May"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "Adjustments were made to the Call center to improve performance/load times of large call pools.",
    releasedate: "2025 May"
  }, {
    type: "New/Improved",
    category: "Contact timeline",
    description: "The email events history has been restored in the contact timeline.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Your Leaders tab of the homepage includes the employer of the leader.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The data import details section of a completed import now indicates the matching configuration used such as Fuzzy matching.",
    releasedate: "2025 April"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Project admins will no longer see deactivated users when editing other user's quick links.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Radio button custom fields have been converted to drop-down choosers. Radio buttons are no longer supported.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "External system",
    description: "External systems have a new option checkbox, \"Display in Call center\" that, when checked, causes the external system value to be displayed in the Call center header.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A link to the Help Center has been added to the Settings menu.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "The contact timeline has been reconfigured to load timeline items more efficiently.",
    releasedate: "2025 April"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The tree search keyword finds child organizations of organizations directly led by an organizer (indirect leadership) as long as the child organizations do not have a different leader.",
    releasedate: "2025 April"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Data import pages with lengthy import histories were not loading. This has been corrected.",
    releasedate: "2025 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Events are now available for use on a organization public form.",
    releasedate: "2025 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Data import page has been enhanced to ensure faster load times.",
    releasedate: "2025 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Timeline items located on a record's Overview page now allow the same interactions as the Contact timeline on a search results page.",
    releasedate: "2025 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms have been separated from the contact types page. Public forms are now located on it's own dedicated page in the app.",
    releasedate: "2025 March"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "A uniqueness validation rule has been added to the custom field creation/edit process to prevent search collisons.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "For any custom field of the date type, a new search keyword will be available that is composed of the field's name with the word \"anniversary\" appended. The search results will be contacts whose field value falls on or within the specified date or date range in any year.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Custom fields can be used in messaging as merge tokens.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The email template drop-down list in the BulkSendEmailPanel is sorted by the most recently created or updated.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form edit page features an \"Enabled\" checkbox, which disables the form when un-checked.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "External system",
    description: "External systems can now be enabled as a merge token for messaging. The option is available on the edit page of an external system.",
    releasedate: "2025 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Project admins may disable the manual creation of a specific contact type on the contact type's edit page.",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "Project admins may download the information from the data import table as a spreadsheet or PDF.",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Project settings and user settings are combined in to one searchable dropdown menu.",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Additions and removals to a call pool will appear on the history tab of a record.",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form merge behavior has changed to preserve most of the information of the existing matched entity (Broadstripes ID and history).",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "The contact timeline column has a date filter, allowing a user to limit its contents dynamically.",
    releasedate: "2025 January"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Start time\" and \"End time\" as filterable, sortable columns to the call pools index page.",
    releasedate: "2024 December"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "When custom field drop-down chooser options are displayed in the Call center, they are displayed as radio buttons if there are five or fewer options.",
    releasedate: "2024 December"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Some custom fields in a Call center script can flagged as “required,” and will not allow completion of the script without input to those fields.",
    releasedate: "2024 December"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Project admins can specify start and end dates and times for Call center call pools.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "User specific settings page has been split into two seperate pages and moved to the Settings menu. There is now page for <b>Your project settings</b> that includes: " + "<ul>" + "<li>the link to the user's linked person (if any)</li>" + "<li>the default timeline type drop-down under</li>" + "<li>the API token</li>" + "<li>the project ID</li>" + "</ul>There is also a page for general <b>User settings</b> that includes:<ul><li>Change password</li>" + "<li>Change name and email address</li>" + "<li>SMS notification settings</li>" + "<li>Project switching preferences</li>" + "</ul>",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "All users have access to the Settings menu with the appropriate menu options for their user role.",
    releasedate: "2024 November"
  }, {
    type: "Fixed",
    category: "Bulk actions",
    description: "The messaging permission bulk actions did not respect the user's type filter or employer filter. This has been corrected.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "If SUPPLEMENTAL custom fields are not specified in a script, the supplemental panel does not appear below the PROMPT panel .",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Users sending email can change the display name (aka \"Friendly-From\") used for the From email address for a given template.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Users sending bulk email can choose the \"reply-to\" address for an outgoing email as well as the \"From\" address.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Email timeline itemshave been imporved with visual indicators of delivery status. These indicators provide at-a-glance updates on whether an email was successfully delivered, is pending, or encountered an issue. Additionally, if more details are available, users can hover over the indicator to reveal a popover with further insights, such as error messages or recipient activity like unsubscribes. ",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The Projects switcher dropdown menu has been enhanced the Projects switcher dropdown menu to improve performance and usability. Projects are now found and displayed more efficiently, making it easier to locate and switch between them quickly.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The app provides more info about when and why a bulk email has bounced in the contact timeline.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "A project admin can choose to send an email as any email-enabled active user in the project.",
    releasedate: "2024 November"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "A custom project-wide unsubscribe message can be included in outgoing email communications. Project admins may edit this message on the Outgoing email settings page.",
    releasedate: "2024 October"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Project admins can designate universal BCC email recipients on the Outgoing Email Settings page. This feature also allows inclusion when the recipient threshold is met.",
    releasedate: "2024 October"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "A bulk email can be viewed a webpage.",
    releasedate: "2024 October"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The maximum number of recipients per text message has been increased to 20,000.",
    releasedate: "2024 October"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Custom database reports can now be scheduled to run  once at a future date or at a specific time/day on a daily, weekly, or monthly basis. Reports can be automatically sent to a custom set of users via email.",
    releasedate: "2024 October"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Logo images on the confirmation submission page of a public form have been optimized for better display on different devices to devices.",
    releasedate: "2024 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "A new checkbox, labeled \"Can manage project members\" on the project admin's edit page can disable/enable the project admin's ability to edit or invite new users.",
    releasedate: "2024 September"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "Sortable list custom fields have a \"keep alphabetized\" option that will alphabetize all options for that custom field.",
    releasedate: "2024 September"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "Drop-down chooser custom fields have a \"keep alphabetized\" option that will alphabetize all options for that custom field.",
    releasedate: "2024 September"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A \"Loading\" indicator will now appear on the project members page whenever the table takes longer to load all members.",
    releasedate: "2024 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A highly visible sort icon has been added to data table columns, making it easier to sort your data in ascending or descending order with a single click.",
    releasedate: "2024 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new search keyword <span class='searchlang'> employees</span> is available to search for employers of a person. This keyword may also be used with square bracket subqueries." + "e.g. <span class='searchlang'>employees =  \"John Smith\"</span> or <span class='searchlang'>employees = [assessment = 3]</span>",
    releasedate: "2024 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Project admins can enable attachments up to 10MB on a public form.",
    releasedate: "2024 July"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "The Employee status field was not available as an option in the search layout dialog box. That has been corrected.",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "Matching and Merging",
    description: "When an organization's public form submission merges with an existing record, the organization will retain the original name, parent organization, and position in the shop structure.",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Text searches now function without accent sensitivity.",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center will not start if Javascript is not enabled in the user's browser.",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users will not be permitted to log in if Javascript is not enabled in their browser. ",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "Users can specify a Department with an Employer and the app will match any organization within the shop structure and create an employment for that organization.",
    releasedate: "2024 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users are informed if they attempt to mark a primary address as bad.",
    releasedate: "2024 May"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A project admin may add business contact info to a organization type public form. The contact info data field options include:" + "<ul>" + "<li>Business Address</li>" + "<li>Business Phone</li>" + "<li>Business Cell Phone</li>" + "<li>Business Email</li>" + "</ul>",
    releasedate: "2024 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Project admins can use an API to retrieve data from the Broadstripes app. Queries can be generated using Broadstripes search language. The following fields may be retrieved: " + "<ul>" + "<li>Name</li>" + "<li>Relationships</li>" + "<li>Custom fields</li>" + "<li>Events</li>" + "</ul>" + "A query can also return a count.",
    releasedate: "2024 May"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The bulk email panel on the search results page will display an error if the email does not include a subject or if no valid recipients have been chosen for sending.",
    releasedate: "2024 May"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Public forms were allowing submission when a required employer field was left blank. This has been fixed.",
    releasedate: "2024 April"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "When a file is uploaded, the application will provide a descriptive message if there are any issues with the spreadsheet being imported.",
    releasedate: "2024 April"
  }, {
    type: "Fixed",
    category: "Contact timeline",
    description: "Some SMS conversations were not being displayed in a record's timeline. This has been corrected.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Mobile",
    description: "The Nickname field is now available in the app's mobile interface for creating or updating.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "The Limited Visibility search text box features an icon located to the right of the input box, allowing users to copy all content easily.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "When hovering over custom report fields in the HTML grid view, informational popovers will appear. These popovers will reveal the complete values of cells that cannot fully display their content due to narrowness.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The data import process has improved matching on phone and email. Data import will ignore trailing and leading spaces when trying to match phone and email to existing data in Broadstripes.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The outgoing email settings page checks domains for a validated authentication status before adding an email to a project's outgoing email options.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The outgoing email settings page allows the addition of multiple outgoing email options.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Project admins can indicate that specific organization contact types are not visible in the shop structure.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The bulk email panel checks email address domains for a validated authentication status before permitting an email send.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The data import auto-mapping feature will  recognize a header of \"Parent Organization Broadstripes ID\" and automatically map to the Parent Organization Broadstripes ID field.",
    releasedate: "2024 April"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The data import auto-mapping feature will no longer recognize and map the word \"Name\" to the Organization Name field.",
    releasedate: "2024 April"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Calculated columns on a status report were not reflecting current counts in an organization's totals. This has been corrected.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Email templates may be duplicated on the  Email Templates page. The copy action link can be found on the far right of a template's row.",
    releasedate: "2024 March"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The driving report generated from the interactive map was not including all contacts that were selected. This has been fixed.",
    releasedate: "2024 March"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Saved configurations were causing a display error and reroute to homepage when used for a data import. This has been fixed.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "A project admin has the option to schedule a status report to be generated either in PDF or XLS format.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The confirmation email for a public form can now incorporate the form submitter's responses within the email body, enclosed as a PDF attachment, or both.",
    releasedate: "2024 March"
  }, {
    type: "Fixed",
    category: "Email",
    description: "Total counts on the email summary page were not reflecting true counts. This has been fixed.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Users can choose to have external system contact info included in their spreadsheet report. By default, external system contact info data will excluded from a spreadsheet report. A new checkbox,  <b>Separate contact info columns by external system</b>, has been added to the spreadsheet options pop-up box.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The list of users in the Changed by dropdown menu in the Change Explorer now includes the user's email.",
    releasedate: "2024 March"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "The calculation type <b>CHECKOFFCOUNT</b> did not return a count of the amount of checked event steps for a particular event. This has been fixed.",
    releasedate: "2024 March"
  }, {
    type: "Fixed",
    category: "Email",
    description: "Older email templates that were not created by the WYSIWYG editor were not rendering in the editor. This has been fixed.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The WYSIWYG email editor is available to basic users if they have the \"Can send bulk emails\" permission.",
    releasedate: "2024 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Outgoing emails generated by a public form (to the submitter, other emails that were designated for notification, or an employer email) includes the content of the public form submission.",
    releasedate: "2024 February"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new search is available that will find records with multiple physical addresses. The search can be accomplished by using the keyword \"multiple\"." + "e.g. <span class='searchlang'>address = multiple</span>",
    releasedate: "2024 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Detailed history entries created by a data import are credited to the data import number by which it was created.",
    releasedate: "2024 February"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "Users can add attachments (up to 10MB) to bulk emails via the bulk email panel.",
    releasedate: "2024 January"
  }, {
    type: "Fixed",
    category: "SMS",
    description: "Sender tokens in SMS messages were not inserting the sender's name into a message. This has been fixed.",
    releasedate: "2024 January"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "When a person opted out of communications in a public form, the PDF version inaccurately reflected an \"opt in\" status. The person's record in the app did accurately reflect an \"opt out\" status. This has been fixed.",
    releasedate: "2024 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A Edit (pencil) icon has replaced the delete icon when hovering over a saved search item. When clicked, the icon will launch a search dialog box where you may edit, delete, share or save a copy of the search.",
    releasedate: "2024 January"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A saved search can be edited.",
    releasedate: "2024 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form for a person contact type can now include a field for a external system value that can be used to match to an existing person in the project.",
    releasedate: "2023 December"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Users were unable to access HTML-based and spreadsheet reports in the app. This has been fixed.",
    releasedate: "2023 December"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "When a data import matches an existing cell phone or email address that has been opted out, the import will not opt in the contact information.",
    releasedate: "2023 December"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form for a person contact type can now include a field for a business email address that can be used to match to an existing person in the project.",
    releasedate: "2023 November"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "A project admin can cancel pending invitations to users on the project members page. A \"cancel invitation\" icon has been added in the Status column of the pending user's row. The icon will remove the pending user from the project.",
    releasedate: "2023 November"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Recurring scheduled jobs (scheduled reports, SMS messages, or email) can be named and viewed on the Scheduled Jobs page in a a searchable and filterable grid. The Scheduled Jobs page can be accessed on the left navigation panel.",
    releasedate: "2023 November"
  }, {
    type: "Fixed",
    category: "Call center",
    description: "The Call center did not display multi-line text fields. This field now displays and will display a popover box for larger amounts of text.",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The Project Members page has a Last Active column. This column reflects the date and time of the user's last activity on the app.",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The User Status column in the Project Members page has been replaced with a Status column that displays the project member's status. (Active, Pending, Deactivated, or Suspended)",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins will now deactivate a user on the Project Members page instead of deleting a user from the project.",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "When a public form is used to update an organization, the name of the existing organization and its parent organization is preserved.",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Email and SMS searches now support negative searches i.e. <span class='searchlang'> emailselected != 52 </span><br> This search will return any contacts who were not selected for email message #52.",
    releasedate: "2023 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Text messages and emails can be scheduled to send at a specific time of day on a daily, weekly, or monthly basis. <b>Recipients will be determined by the search results generated at the scheduled time of send.</b>",
    releasedate: "2023 September"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Text messages and emails scan be scheduled to be sent at a later time or date. <b>Recipients will be determined by the search results generated at the time of scheduling.</b>",
    releasedate: "2023 September"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users may clear notification pop-up messages from view with the \"Clear all\" button.",
    releasedate: "2023 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The search panels on the shapes map have a hide/show button that toggles the visibility of the panel's search.",
    releasedate: "2023 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users do not have to wait while limited visibility changes are saved.",
    releasedate: "2023 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A refresh button has been added to the change explorer on the homepage.",
    releasedate: "2023 August"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A \"Copy emails\" button has been added to the Project members page. This will copy all visible (filtered) emails into the user's clipboard.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The custom SQL report data grid can export data to Excel or  a PDF.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The \"Shops and Departments\" page is now a searchable and filterable grid. Additional information about organizations will be available including creation and update details. Column visibility may be changed according to user's preference. Users may also download the shops and departments table as a spreadsheet or PDF.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Opt-in checkboxes on public forms are checked by default.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Spreadsheet template reports can be scheduled to run at a specific time of day on a daily, weekly, or monthly basis. Reports can be sent to a user group or a custom set of users.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The \"Sent Email\" table is now a searchable and filterable grid.",
    releasedate: "2023 July"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The \"Forms submitted\" table is now a searchable and filterable grid.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms can include a checkbox to automaticaly opt-in a submitter to SMS or email communications.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "Custom time of day fields can now be used to sort search results.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Searches for phone and email respond to the values: <span class='searchlang'>good</span>, <span class='searchlang'>bad</span>, multiple</span> and <span class='searchlang'>single</span>- e.g. <span class='searchlang'>email = multiple</span>",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The <span class='searchlang'>updated</span> search keyword has been changed to <span class='searchlang'>lastupdated</span>.**************",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The <span class='searchlang'>timelinetype</span> search keyword now works for word-matching in addition to  exact matching.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The left navigation panel may be resized when the panel is pinned in an expanded state.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The data import system (manual and automated) can, at the admin's option, provide detailed summary data from an import in email notifications. Email attachments can include matched/unmatched rows, skipped rows, and rows with errors in CSV format.",
    releasedate: "2023 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Search results for \"date called\" were returning values in UTC. Search results now return values with respect to Eastern time.",
    releasedate: "2023 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search keyword <span class=\"searchlang\">nickname</span> is available in the search builder tool. <span class=\"searchlang\">nickname</span> is also compatible with magic values, <span class=\"searchlang\">any</span> and <span class=\"searchlang\">none</span>.",
    releasedate: "2023 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Search results for \"date called\" were returning values in UTC. Search results now return values with respect to Eastern time.",
    releasedate: "2023 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The <span class='relnotessectionhead'>timelinetype</span> search keyword will not distinguish between searches for <span class=\"searchlang\">timelinetype = \"code change\"</span> and <span class=\"searchlang\">timelinetype = \"assessment change\"</span>. Both searches will return identical results.",
    releasedate: "2023 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The \"Assign to leader\" bulk action in the search results records by whom the contact leadership assignment was created or updated by.",
    releasedate: "2023 May"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The Change explorer found on the Recent Changes tab of a user's homepage gives more detailed information on contact modifications. New columns/items include:" + "<ul>" + "<li>Import #</li>" + "<li>Broadstripes ID</li>" + "<li>Object Type</li>" + "<li>Attribute</li>" + "<li>Old value</li>" + "<li>New value</li>" + "<li>Import #</li>" + "<li>Summary Text</li>" + "</ul>" + "Change explorer is enabled for admins by default. An admin may enable the feature for basic users in a project.",
    releasedate: "2023 May"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Basic list PDFs and spreadsheets can be scheduled to run at a specific time of day on a daily, weekly, or monthly basis. Reports can be sent to a user group or a custom set of users. ",
    releasedate: "2023 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "If a user in a project that requires two-factor authorization has blocked the SMS notification number, they will be given instructions to unblock it when they reach the two-factor authorization verification page.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The employment search for public forms has been enhanced and provides a faster search experience for the user when entering employment information.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Status reports can be scheduled to run at a specific time of day on a daily, weekly, or monthly basis. Admins will see an additional tab, <b>Schedule</b>, on the Edit page of a report.  Reports can be sent to a user group or a custom set of users. ",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Product tours for basic tasks have been added to the search layout and sort builder dialogs. Users may refer to these for step-by-step instructions on proper use. An open book icon has been added to the right side of these dialogs to trigger these product tours.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Web addresses (URLs) contained in SMS messages sent or received by Broadstripes are now parsed and displayed as links. Clicking the links will open them in the user's browser.",
    releasedate: "2023 March"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "The small, right-aligned \"X\" icons in the employment location-chooser dropdowns on public forms were supposed to clear the dropdowns when clicked, but they weren't working. They have been fixed.",
    releasedate: "2023 March"
  }, {
    type: "Fixed",
    category: "SMS",
    description: "Users who block SMS notifications from Broadstripes notification numbers (by sending \"STOP\" to the number) will now receive warning notifications on every page of the app urging them to correct the problem. (To be a valid user of Broadstripes' SMS functionality, a user must agree to receive SMS notifications from the app to their personal cell number.) The warning message will direct the user to their settings page, where they will receive instructions about un-blocking Broadstripes.",
    releasedate: "2023 March"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Below the shop/employer level, the tiered drop-downs for selection of department and sub-department on public forms indicated that they were \"[optional]\". This has been removed.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Requested Reports page is a searchable and filterable grid with new informative columns. The filtering options allow the following specifications:" + "<ul>" + "<li>the file type of the report(XLSX, CSV, PDF, ZIP) indicated by corresponding icon</li>" + "<li>the user-specified name and/or filename of the report</li>" + "<li>the status of the report</li>" + "<li>the timeframe for which the grid displays reports</li>" + "<li>the range of file size(in bytes)</li> " + "<li> the reason for failure status if applicable</li>" + "<li>the user who generated the report</li> </ul>" + "In addition, project admins can download and view other users' requested reports on this page. Reports will not be marked as downloaded when downloaded by the project admin.",
    releasedate: "2023 March"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "If Broadstripes ran into an issue sending an email after a public form was submitted, this would cause problems recording the form submission. This has been fixed so that public form submissions will not fail even if an email issue occurs.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The magic value <span class='searchlang'>multiple</span> is available in the search builder drop-down menu for the  <span class='searchlang'>employer</span>  keyword. It will be listed as \"has multiple values.\" Users may use this to find records that have more than one employment.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Custom database reports can now be designed with parameters for user input at run-time. This will allow users to specify a lookback period for a report, the name of a particular user for a change history, etc. The specified parameters will appear on the report, as will a customizable name.",
    releasedate: "2023 March"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "If a Broadstripes user sends a bulk text message with an invalid attachment type, an error will still occur and the messages will fail, but the recipients will no longer be blocked from receiving future texts. (Also, the error that you see is more explanatory than just \"Error 12300\"!)",
    releasedate: "2023 February"
  }, {
    type: "Fixed",
    category: "Public forms",
    description: "Under certain unusual circumstances, a public form that was trying to merge to an existing person record could wipe out some of the data on the merged record. This has been fixed.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "An admin setting up a public form (such as a digital card) can now allow workers to indicate where they work on the form. The admin can choose one of four different methods:" + "<ol>" + "<li>Tiered dropdowns that let the worker choose both their shop and their department (to any level).</li>" + "<li>An autocomplete textbox that matches against the names of the lowest level of the shop structure.</li>" + "<li>An autocomplete textbox that matches against the names of all the organizations in the shop structure.</li>" + "<li>A textbox that will match against a specific external system (e.g. a shop, department, or store ID coming from another database).</li></ol>If you need help setting up such a form, get in touch with Broadstripes support.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "If you have them, quick links are now accessible in the left-hand navigation panel and in the search dropdown. In addition, quick links, saved searches, and recent searches are color coded and in smaller type to make more of their names visible.",
    releasedate: "2023 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The app would create a duplicate record when a user double-clicked on the <b>Save</b> button. This bug has fixed.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Profile  pic",
    description: "If a person has a profile pic, the image will be  displayed in the header of the record.",
    releasedate: "2023 February"
  }, {
    type: "Fixed",
    category: "SMS",
    description: "Text messages with non-graphic attachments would return a prohibitive error from the SMS provider. Broadstripes will now only accept JPEG, PNG, and GIF attachments.",
    releasedate: "2023 February"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Some emails and phone numbers were erroneously flagged as repeated when attempting <span class= \"searchlang>email = repeated</span> or <span class= \"searchlang>phone = repeated</span>  search. This bug has been corrected.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A \"On the PDF, hide fields left blank\" checkbox in the form editor allows PDFs to be generated without blank fields. ",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Profile  pic",
    description: "Picture Grid is a new pdf available in the Reports drop-down menu. The pdf will display selected contacts' Profile pic, name, shop/department, and classificaton/jobtitle.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Profile  pic",
    description: "An image may be added to a person's profile as a Profile pic. This image may be added onto and displayed in the search layout.",
    releasedate: "2023 February"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The legal agreement checkbox can be placed and re-ordered in the form editor.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "The \"long display text\" attribute on custom fields can contain HTML tags that will be processed for display.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "If a custom checkbox on a public form is marked as a required field, it must be checked when the form is submitted or the form is rejected with an error message.",
    releasedate: "2023 January"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Logging in with an invalid email erroneously returned a message \"Invalid security code.\" The message \"Invalid email or password.\" is now displayed.",
    releasedate: "2023 January"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Address fields that appeared as empty even though an address value was present have been fixed.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Mobile",
    description: "The \"Now\" button for timeline entries has been added to the mobile interface.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The employer can be specified by the public form submitter using tiered, sequentially populated dropdowns. if the project has multi-level shops/departments.",
    releasedate: "2023 January"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Some contacts were returning a false value of duplicate when the duplicate has been removed. This bug has been corrected.",
    releasedate: "2023 January"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The project admin membership page does not crash after saving from the Limited visibility popup.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Single choice events display as radio buttons on a Public form.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "An \"Other options\" tab on the pubic form editor allows an admin to specify an event step that will automatically be set for the contact record created by the form and specify the contact type that will be applied to the record created by the form.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The \"Employment\" tab of the public form editor offers the option of forwarding a submitted form to the business email address of the shop listed as the employer. This email is customizable and separate from the email received by the worker.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A \"Now\" button has been added to the timeline item entry field to easily record the current time.",
    releasedate: "2023 January"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The Public form offers the option of a second legal agreement paragraph on the Form content tab of the Contact type edit page. The text field has a checkbox for acceptance.",
    releasedate: "2022 December"
  }, {
    type: "Fixed",
    category: "Contact timeline",
    description: "The \"now\" button that should be next to the \"Occurred at\" time of day field on the full-app search results timeline dialog is now properly showing.",
    releasedate: "2022 December"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Excel-formatted spreadsheets can now be generated for up to 25 000 contacts.",
    releasedate: "2022 December"
  }, {
    type: "New/Improved",
    category: "Matching and Merging",
    description: "A public form that matches an existing record in Broadstripes will no longer create a \"matched and merged\" timeline item.",
    releasedate: "2022 December"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users are synchronously required to use two factor authentication if a project in which they have a membership requires it.",
    releasedate: "2022 December"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Security code input issues in Google Chrome have been fixed.",
    releasedate: "2022 December"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "Spreadsheet reports(XLSX/CSV) will include a \"Timeline Entry Time\" column with the time appropriate for the timeline type when timeline entries are included.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Matching and Merging",
    description: "A contact merge will append data of a multi-line text custom field with a date stamp rather than completely overwriting the older data.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A confirmation email from the public form is optional.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "If a public form wants to create a timeline item but can't match a person in Broadstripes using the \"Contacted by...\" info supplied on the form it will create a new person record to which to link the timeline on the worker's record.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Contact timeline",
    description: "An optional time of day field is now available for timeline entries.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form can create a timeline entry.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form can include steps from an event as a checkbox group.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form can link a person to an organization via employment.",
    releasedate: "2022 November"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The limit on the length of a bulk text message is now 480 characters (exactly three \"message segments\") down from 500. Since the SMS provider charges for each segment it makes sense to discourage text authors from going over.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "An admin can select any SMS number in the project to send SMS messages.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Your Broadstripes project can be secured with two-factor authentication. Contact support to enable this.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "A public form can be set to not attempt to match to an existing contact.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "A password for a Call center call pool can be created in the Edit call pool page.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form and post-submission page can be customized with CSS by Broadstripes support. Please contact us for help with this.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form allows the admin user to specify whether the confirmation email has a PDF attached containing the submitted information.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form allows the admin user to choose whether or not to display a second confirmation input for the form submitter's email address.",
    releasedate: "2022 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins cannot view another user's settings page.",
    releasedate: "2022 September"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The Sent email page provides detailed information on the attempted invalid and successful email messages.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "A mass email recipient will receive multiple emails if multiple addresses are opted-in. Previously recipients would only receive communications to their primary email address.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The option to change a contact type can be \"locked\" for basic users. In the General settings page admins can uncheck \"Modify a record's contact type to disable for basic users.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "Bulk actions",
    description: "The bulk email and text messaging permissions panels allow the user to specify which contact info groups a change should apply to.(Home Business Personal Other and All)",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins can bulk change the primary contact info of contacts via the panel that appears when \"Change primary contact info\" is selected in the Actions menu.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "An automated message is sent to a contact's email when they have opted out of receiving SMS messages. This message will provide instructions on how to opt-in to receive SMS messages.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "A user setting or changing their cell phone number for notifications must confirm the number and opt in. Users must reply \"Yes\" to the notificatications confirmation text. A final confirmation message will be sent from Broadstripes when the SMS number is confirmed and opted in.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The user account page indicates if a SMS notification number has been confirmed. If a SMS number is changed the user will then be given an option to confirm and save. This will send a notifications confirmation text to the SMS number. Notifications confirmation texts can be resent by retyping the number and saving.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Hovering the cursor over a message bubble in the SMS conversation view makes a timestamp popover appears and displays the time at which a message was sent or received.",
    releasedate: "2022 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "An exclamation icon appears next to a cell number that has returned a messaging error .",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Users can search for contacts who have one or more cell phones that have encountered an error when sent an SMS message. A search using the \"phone\" or \"cell\" search keywords with the magic value \"error\" like so: \"phone = error\". The keyword can also be found in the search builder.",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Text recipients can opt-out of receiving text messages by replying to the initial SMS with the word \"STOP\".",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Broadstripes sends text messages as MMS when the character count (including tokens) is over 160.",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The behavior of the search keyword #type# was made more useful and consistent for finding contacts. Negative searches now work (e.g. #type != person# will find all contacts which are organizations or organization sub-types). Exact-matching also works (e.g. #type == person# finds contacts of the Person type not those of any sub-types).",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Search results SMS conversation view should refresh after message is sent dynamically from within timeline. Incoming and outgoing messages are displayed and updated in real time.",
    releasedate: "2022 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "A searchable column has been added to the Sent Texts page that shows the virtual number the SMS was sent from.",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The information in the Caller tab of the Call center page can be downloaded to a pdf or excel spreadsheet.",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "If a project-wide email address has been specified in outgoing email settings it will be the default \"From\" email address in the drop-down menu for bulk emails rather than the user's account email address.",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Mobile users can add or edit notes for contact info.",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "SMS search keywords have expanded. \"smsdate\" will return people who have sent or received a message on a certain date or in a certain date range. \"Smsfrom\" and \"smsto\" return people who have received a text from or sent a text to a specified user. The values can be a name or a virtual phone number. The existing `sms` keyword has been enhanced so that it will respond to the magic values: incoming outgoing delivered undelivered unknown failed. These keywords and values may be found in the search builder.",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "SMS messages are now assigned a serial index number. Users can search for contacts that have received a specific message by search using this number. ie <span class=\"searchlang\">sms = 22</span> will return all contacts who were sent this sms message #22",
    releasedate: "2022 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The bulk and individual text-messaging tools allow a user to attach/include an image in a text message.",
    releasedate: "2022 May"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Home address personal email home phone and cell phone are optional on the public form.",
    releasedate: "2022 May"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Basic List (PDF) report has an option similar to \"show people followers only\" named \"show organization followers only\". This can be used to generate a report on organizers and the turf they lead.",
    releasedate: "2022 May"
  }, {
    type: "Improved",
    category: "SMS",
    description: "The bulk and individual text-messaging tools allow a user to attach/include an image in a text message.",
    releasedate: "2022 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form has a \"Bcc email address\" input that will accept a single email to which all submitted forms will be sent a copy.",
    releasedate: "2022 March"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "In a project where temporary visibility is enabled a basic user can find contacts for visibility requests by typing external system values into the search box.",
    releasedate: "2022 March"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The limit on the number of contacts that can be selected to receive a bulk/blast text message has been raised to 5 000 per send.",
    releasedate: "2022 February"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The app can now host custom database reports built by developers to meet the specifications of the user. Results can be delivered in XLSX PDF or in a filterable sortable data grid. Contact Broadstripes support if you need a custom report built.",
    releasedate: "2022 January"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "SMS conversations in which one or more messages failed to send or deliver have a red exclamation mark next to them in the timeline.",
    releasedate: "2022 January"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "Each data import in a project gets a unique integer ID which allows it to be searched and discussed more easily. All existing imports and lists have been renamed to reflect the new naming convention.",
    releasedate: "2021 December"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A <span class=\"searchlang\">sms = failed</span> magic value allows the user to search for people with failed SMS messages.",
    releasedate: "2021 December"
  }, {
    type: "New/Improved",
    category: "External system",
    description: "External systems have an \"enforce uniqueness\" checkbox on their edit form. If checked (for new systems this will be the default) Broadstripes will not allow a record to be created with the same external system value as an existing record either manually or via import.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public form submissions will be checked for matching records before creating a new contact. Matching records will be merged with the existing contact.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "When importing data Broadstripes will check for existing records and warn the user of a possible duplicates.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "Users can choose to not update matching records when importing data.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "Search results display sortable list custom field values. Users can search these fields using the magic values of \"any\" and \"none\" in addition to their unique values.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins can import ordered values for a sortable lists field.",
    releasedate: "2021 November"
  }, {
    type: "Improved",
    category: "Public forms",
    description: "The \"introduction\" section of the public form recognizes HTML tags.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "Users can set and update sortable list custom fields on individual people.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "Custom fields can now be displayed with an alternative label in the Call center and on public forms. When editing the custom field set the \"Long display text\" attribute and that will be used instead of the custom field name.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms can display and allow edit of sortable lists.",
    releasedate: "2021 November"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "The app has a new kind of custom field: the \"sortable list.\" These fields take the form of a list of items in a default order. The user or the submitter of a public form can use drag-and-drop to sort the items in the order they choose indicating priority.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms support all standard custom fields including drop-downs checkboxes memo fields and multi-selects.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The Project Members settings page has been updated to a searchable and sortable grid.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins can merge two people or organizations from the search results via a new \"Merge contacts\" item on the \"Actions\" menu. The user will select which record to preserve and which to delete.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users can adjust the default timeline entry type to a type of their choosing. This means that manual timeline entries will have the automatic type of the selected preference. Users can set this preference by clicking their name in the top right-hand corner of Broadstripes.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "A new \"primary address\" column has been added to layout options and contains the contact's primary address information.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Users can search for assessment/code changes by date and by the name of the user who made the change. This means that <span class=\"searchlang\">lastassessment = Jimmy</span> will return all contacts whose assessment was last changed by Jimmy and <span class=\"searchlang\"> lastassessment < 08/10/19</span> will return all contacts who were changed before August 10 2019. In search results a popup will also appear with the date and creator of the last assessment change when you hover over the assessment column.",
    releasedate: "2021 October"
  }, {
    type: "New/Improved",
    category: "Matching and Merging",
    description: "Users are warned before a contact is created with the same name as an existing contact record.",
    releasedate: "2021 August"
  }, {
    type: "New/Improved",
    category: "Mobile",
    description: "Employer names are searchable on the mobile site.",
    releasedate: "2021 August"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "Basic users in an Limited visibility project can see people they lead even if they're not within their visibility profile.",
    releasedate: "2021 August"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "Users can request temporary visibility when accessing Broadstripes on a mobile device.",
    releasedate: "2021 July"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Default contact types can be set for a project. In general settings admins can select a default type for a person record and an organization record. Data imports with unspecified contact types will default to these selections.",
    releasedate: "2021 June"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "When creating or editing a custom field of any type an admin can now click a checkbox labeled \"Admin-only (invisible to basic users)\". An admin-only custom field will not be visible in any view for a basic user. Note: calculated columns that use the admin-only field will still be visible.",
    releasedate: "2021 June"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "If temporary visibility is enabled in the project the members page will contain a column labeled \"Temporary visibility\". This column reflects any temporary visibility requests the user has made and in parentheses the request made in the past 2 weeks.",
    releasedate: "2021 June"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "A basic user with Limited visibility can request temporary visibility via the search autocomplete suggestion.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "New Person and Organization creation links can be hidden for the project. Admins can select which contact type creation links to hide in the General settings page.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "Admins can see basic user temporary visibility requests in the third tab of Limited visibility settings popup.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "Admins can now turn on \"Temporary visibility\" for a project with Limited visibility. This is done via a checkbox indented under the Limited visibility checkbox on the project's \"General Settings\" page.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Contact timeline",
    description: "Timeline items types cannot be deleted if they have items associated with a contact.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Contact timeline",
    description: "Custom timeline item types can be dragged and dropped to re-order.",
    releasedate: "2021 May"
  }, {
    type: "New/Improved",
    category: "Contact timeline",
    description: "Users can now create edit and delete timeline item types through the \"Timeline Entry Types\" page",
    releasedate: "2021 April"
  }, {
    type: "New/Improved",
    category: "Limited visibility",
    description: "Limited visibility can now be configured by a Broadstripes search query. This means that admins can grant visibility based on any relevant Broadstripes criteria rather than just by specifying a set of work locations whose employees will be visible.",
    releasedate: "2021 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "When editing a custom field the admin can now mark it to \"Display in Call center.\" Custom fields marked this way appear in the header with the other information about the call target.",
    releasedate: "2021 April"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "When using an at-will call pool callers can see the name of the last caller to attempt to reach a person if they display the \"Last Caller\" column using the column settings gear icon.",
    releasedate: "2021 March"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "The Callers tab in the Call center allows an admin to merge duplicate callers. Admins can merge multiple callers into one caller via the Caller tab in the Call center. Users will select a primary caller in which to merge the other callers and call records.",
    releasedate: "2021 March"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new search keyword <span class=\"searchlang\">calloutcome</span> allows users to search for contacts by the outcome. i.e. <span class=\"searchlang\">calloutcome = interrupted</span> will return any contacts who received a call that was interrupted.",
    releasedate: "2021 March"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Call center searches are correlated meaning that all call-related criteria are applied \"together\" (rather than independently of each other) to each call in a person's timeline. For example the search <span class=\"searchlang\">calloutcome = reached</span> AND <span class=\"searchlang\">called = today</span> will find people who were reached today not people who were called today with any outcome and who have ever been reached by any caller.",
    releasedate: "2021 March"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center settings page has a Callers tab that shows information on callers for that project including their first/last call how many calls were made and their outcomes.",
    releasedate: "2021 February"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "SMS converesations views now show the incoming message when a contact opts out with \"STOP\". (Broadstripes automatically opts out people who send a \"STOP\" message.)",
    releasedate: "2021 February"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "When the data import logic is matching phone numbers for a single record to try to prevent duplication it will ignore the area code of a 10-digit number when comparing it to a 7-digit number.",
    releasedate: "2021 February"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center warns a user if their session is going to time out. If the user indicates that they are still active the timer will reset.",
    releasedate: "2021 February"
  }, {
    type: "New/Improved",
    category: "Bulk actions",
    description: "Two changes to bulk opt-in/opt-out: (1) contacts who have been opted out of email or SMS messaging cannot be opted back in by a bulk action and (2) the admin can choose to opt in (or out) the primary contact info item only or all contact info items.",
    releasedate: "2021 February"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "A caller activating an \"at-will\" call pool sees the people in the pool in a filterable sortable data grid.",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Call pools have an option to allow callers to see all contacts in the call pool and make calls in any order or \"at-will.\"",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Call center date-range report allows downloading of its detail rows in Excel and CSV format.",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "The Call center single-day report can be downloaded in XLS format.",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "A contact will be created from SMS messages that originate from an unknow number. If the number should belong to an existing contact add the number to the existing contact and delete the unknown contact. The SMS message will append to the existing user's profile.",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Admins can now set a new permission for basic users when inviting or updating them \"Can manage their own Call center call pools.\" Users with this permission will not have access to any of the other Call center admin features.",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Bulk actions",
    description: "The contact info bulk deletion panel offers the user the ability to delete info only with a specific group or groups (Home Business Personal Other).",
    releasedate: "2021 January"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "A drop-down custom field has an option on its new/edit page to \"Allow imports to add values\" to the field. When enabled any unknown values in that drop-down custom field column will be added to the drop-down values.",
    releasedate: "2020 November"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "A shortcut has been added to the Call Pool index page to automatically copy the call center link for a specific poop into the user's clipboard. The user may also copy the link from the call pool's Edit page.",
    releasedate: "2020 November"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Users can now initiate the Call center feature directly from individual contacts in search results. Callers can select to call a contact from the Contact Details pop-up.",
    releasedate: "2020 October"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "When creating or editing a membership an admin can see and set checkboxes allowing a member to set opt-in/opt-out send email and send texts if the corresponding feature is enabled in the project.",
    releasedate: "2020 October"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center call report uses the outcomes recorded in the calls in its project to generate its columns.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "A call pool can now be deactivated instead of deleted allowing it to be re-used in the future.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The \"caller\" search keyword returns people who were called by someone matching the provided search value. People may be found by using the caller's name email or phone number (i.e. <span class=\"searchlang\">caller = jane.doe@example.com</span>). This keyword also works with the magic values \"any\" and \"none.\"",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The contact timeline item for a call center call include which call pool was used when the call took place.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "For queued call pools the Call center will ignore potential targets in the pool who have already had a call using the same script and with an outcome in the \"completed\" list in the Call center Settings.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Exact-matching operator options are available for classification/job title in the Search Builder. i.e <span class=\"searchlang\">classification == Cook</span>",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The script runner now allows the admin to set a title for \"NEXT\" (e.g. \"Continue\") buttons created in the script using the \"LABEL\" instruction.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The Call center header displays the whole shop hierarchy (e.g. \"Grand Hotel : Housekeeping\") for the call target's primary employment not just the lowest level department name (e.g. \"Housekeeping\").",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new keyword is available to search for call pools. The term <span class=\"searchlang\">callpool = Campaign Six</span> will return all contacts in the Campaign Six call pool.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "The people counts on the call pool index page link to the search for that call pool.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "Call pools can be deleted on the call center settings page.",
    releasedate: "2020 August"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "A link icon that copies the URL for the Call center to the user's clipboard is accessible from the call pool edit page and the call pool index page.",
    releasedate: "2020 July"
  }, {
    type: "New/Improved",
    category: "Call center",
    description: "On the Call center call pools page a project admin can copy a link to share with any callers who will use that call pool. The link will open a call session for that call pool.",
    releasedate: "2020 July"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Admins can now provision virtual numbers for SMS messaging in the U.S. and Canada.",
    releasedate: "2020 July"
  }, {
    type: "New/Improved",
    category: "Custom fields",
    description: "Single-line text custom field does not have a character size limit.",
    releasedate: "2020 July"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "A new search keyword <span class=\"searchlang\">employment</span> allows users to find workers by the number of employments they have. The keyword works only with the following magic values:<span class=\"searchlang\"> any</span> <span class=\"searchlang\">none</span> <span class=\"searchlang\">single</span> <span class=\"searchlang\">multiple</span>. For example <span class=\"searchlang\">employment = single</span> finds people with one employment.",
    releasedate: "2020 July"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Public forms use email and phone inputs to make input easier in mobile browsers.",
    releasedate: "2020 June"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The user account edit page has an option for configuring the project drop-down to be ordered by \"Date of access (most recent first)\" or \"Alphabetically\".",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The \"legal agreement text\" section of the public forms recognizes HTML tags.",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The length of activity before automatic logoff from Broadstripes has been extended to 120 minutes.",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "Contact info",
    description: "A contact info item linked to a locked external system can now be set as the primary of its type (e.g. phones emails physical addresses).",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Admins can merge organizations on the Shops and Departments index page using the Action menu at the top of the grid.",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "If a user has more than 20 projects a drop-down switcher will appear for that user which allows search and filtering.",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The PDF of a public form that is saved to a newly created person's attachments page now contains the person's name in its filename.",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The attachments tab on a contact's page has a number in parentheses next to it indicating the number of attachments (if greater than zero).",
    releasedate: "2020 May"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "A new person imported without an assessment specified will be given the default assessment for the project. Users can indicate the default on the assessment/codes edit page.",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Users can edit an organization directly on the Shops and Departments page index page. To change an organization's name the user would click the edit pencil that appears when you hover over the organization's row. Users may also add a \"New child organization\" by clicking the plus(+) icon that appears when they hover over the organization row.",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "On the contact types page there is a copy icon next to the contact type name that allows the user to copy the URL of the form to their clipboard.",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The subject line and message in the email that goes out to the public form submitter can be set in the form editor (with HTML tags optional).",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Contents of SMS conversations are searchable by both free-text and \"sms\" keyword. i.e <span class=\"searchlang\">sms = \"I want to volunteer\"</span> will return all contacts who had a SMS conversation containing the text \"I want to volunteer\"",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public form displays a checkbox next to the legal agreement text when that field is populated (and displayed).",
    releasedate: "2020 April"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "Users can add a signature block to the public form below the Legal Agreement Text.",
    releasedate: "2020 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The middle name and suffix field are optional on the public form.",
    releasedate: "2020 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public-facing form has an \"intro\" text block that is displayed (if populated) below the header and above the form itself.",
    releasedate: "2020 March"
  }, {
    type: "New/Improved",
    category: "Public forms",
    description: "The public facing form has a \"header\" field that is independent of the form's name.",
    releasedate: "2020 March"
  }, {
    type: "New/Improved",
    category: "Email",
    description: "The body of an email \"sent\" message is initially collapsed on the contact timeline. Users can click to view the full email contents.",
    releasedate: "2020 January"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "When the user inserts a merge token (e.g. \"First name\" or \"Nickname or first name\") in a draft SMS message a yellow warning icon appears next to the character count. The icon has a tooltip that says: \"You've inserted a token in your message that will be dynamically replaced with a value of unpredictable length.\" This warns the user that the length of the text they're drafting will vary with the value inserted by the merge token.",
    releasedate: "2019 November"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "SMS messages are displayed in the contact timeline using the conversation view and allowing the user to respond.",
    releasedate: "2019 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "In the SMS conversation view messages which receive errors now provide useful information about the specific error.",
    releasedate: "2019 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Users receive a text message notification on their SMS notification number when a worker replies to a bulk SMS message they sent.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Messages sent to and received from a specific worker can be viewed in a text conversation interface.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "On a worker's SMS conversations page messages are displayed in chronological order from top to bottom similar to most texting apps.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Users can set edit and confirm an SMS notification number linked directly to their account.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Users who do not have a confirmed SMS notification number set up for their account are prevented from sending texts. This number must be in place so that the user can receive notifications about incoming texts.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The timeline item for an SMS message indicates whether the text was sent to the worker by a Broadstripes user or from the worker to a Broadstripes user.",
    releasedate: "2019 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Users with texting permission can quickly send an SMS message to a single contact via the contact details pop-up box on the name column.",
    releasedate: "2018 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "When provisioning a number admins are required to select a user to assign the number to.",
    releasedate: "2018 August"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The contact timeline aggregates all events for a sent SMS message into a single timeline item (i.e. processed sent delivered).",
    releasedate: "2018 July"
  }, {
    type: "New/Improved",
    category: "Maps and shapes",
    description: "Admins importing geometric shapes for the map view can now choose any metadata from the shapefile to include in the shape name using an intuitive upload wizard. For example if a political district file includes the legislator's name that can be added to the shape name in parentheses.",
    releasedate: "2018 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The SMS number provisioning drop-down menu provides a wider selection of numbers.",
    releasedate: "2018 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search builder has exact-matching options for custom-field text and drop-downs.",
    releasedate: "2018 June"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Incoming messages to virtual phone numbers are recorded as a timeline event.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Admins can deactivate SMS virtual numbers.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Project adminstrators can choose what virtual phone number to send SMS messages from.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "The municipality associated with a SMS virtual phone number is now visible in the number \"Available Phone Numbers\" drop-down menu.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Two new columns were added to the SMS Numbers index page: The \"Creator\" column which shows the user that created the SMS virtual number and the \"Created Date/Time\" column which shows when the SMS virtual number was added.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Project administrators can create new SMS virtual numbers for their projects.",
    releasedate: "2018 May"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Project administrators can see the SMS virtual phone numbers provisioned for their projects.",
    releasedate: "2018 April"
  }, {
    type: "New/Improved",
    category: "SMS",
    description: "Projects can have more than one SMS virtual phone number.",
    releasedate: "2018 April"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The \"Enabled?\" and \"Display on HV sheets?\" columns on the custom field page are sortable and filterable.",
    releasedate: "2018 March"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "The search results layout has two new columns: \"Opted-in phones\" and \"Opted-in emails.\" When exported to spreadsheet the data from these columns is presented vertically (i.e. in the same column) rather than horizontally (i.e. in multiple columns) even if the the contact info types are different.",
    releasedate: "2018 January"
  }, {
    type: "New/Improved",
    category: "Contact info",
    description: "Contact info items (phones and emails) now have a notes field. That field can be edited in the mobile UI and the full browser app.",
    releasedate: "2018 January"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Editing values on the search results wasn't always refreshing the data on the page.",
    releasedate: "2018 January"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "The <span class=\"searchlang\">leadersrole = none</span> search wasn't always working correctly when the leadership tree reached three or more levels.",
    releasedate: "2018 January"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "A \"display all children\" link is available on the status report organization selector for each organization with children.",
    releasedate: "2017 December"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The mobile UI allows users to view and edit address notes.",
    releasedate: "2017 December"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The responsiveness of search box autocomplete was improved.",
    releasedate: "2017 December"
  }, {
    type: "New/Improved",
    category: "Relationships",
    description: "Relationships cells in spreadsheet reports no longer contain dashed separator lines between relationships as the cells could get too big.",
    releasedate: "2017 December"
  }, {
    type: "New/Improved",
    category: "Social Groups",
    description: "The page that lists organizations with social groups provides a count of the number of groups.",
    releasedate: "2017 December"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Address formatting on spreadsheet reports was broken.",
    releasedate: "2017 December"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "Searching for <span class=\"searchlang\">code = none</span> was returning people who had a code with no descriptive text.",
    releasedate: "2017 December"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The \"employer\" input box of the quick search dialog was fragment-matching when exact-matching works better.",
    releasedate: "2017 December"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Clicking on a search containing a sub-clause on the shapes map page was throwing an error.",
    releasedate: "2017 December"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "A link exists on the social groups page allowing a user to select or de-select all groups for display.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "Relationships",
    description: "The social group page has a button allowing you to generate a printer-friendly version of the page.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search builder supports shape group names as a search keyword with shape names (or \"any\" or \"none\") as the search value.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The social group page header displays the full \"hierarchical\" name of the shop or department.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "When using the \"department\" keyword in the search builder the value autocomplete displays only the department name not the full shop hierarchy.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Timeline conditions in a search are applied \"together\" to the evaluated timeline items. This means that if you run a search for people with a timeline date after the first of the year and containing the word \"basketball\" the results will only include people who have a timeline item containing the word basketball that was created after the first of they year. Previously that search would find anyone with a timeline item containing the word \"basketball\" and a timeline item created after the first of the year.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Social Groups",
    description: "The social groups page for an organization had a display bug when no groups existed or were selected for display.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "The \"default\" map layer was having problems on the \"Show on Map\" and \"Driving Directions\" pages.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The quick search dialog was matching on external system IDs in the name input box.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Search",
    description: "When searches contain dates or natural language dates (e.g. \"one week ago\") midnight is consistently interpreted as US Eastern. (Eventually the app will respect the user's specified timezone but for now Eastern it is.)",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "Map markers weren't printing under certain conditions.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Huge mobile searches were causing database slowdowns. They're now limited to 100 characters.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The quick search dialog wasn't displaying the PDF options dialog properly when that was the chosen output format.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The \"shrink to fit\" option wasn't working on PDFs generated by the quick search dialog.",
    releasedate: "2017 November"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "PDF files generated from the quick search dialog weren't using the user-specified filename.",
    releasedate: "2017 November"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Search keywords are now available for first and last name and they can be found in the search builder.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "The search results layout columns offer a new option: \"Addresses Good\" a column that displays only addresses that aren't marked \"Bad.\"",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The search builder panel has links to relevant help pages and a downloadable reference card PDF.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "Instead of a drop-down menu the search results selection tools are now visible buttons saving you a few clicks.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The organization (i.e. \"information architecture\") and style of the search results menu and toolbar have been significantly improved.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "More search errors are handled and noticed to the user.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The \"magic header\" now has a \"scroll to top\" link.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The behavior performance and reliability of the \"magic header\" has been improved.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Relationships",
    description: "The table listing a person's relationships now displays the leader of the related contact (info requested by many organizers).",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "As they used to be keyword groups in the search builder drop-downs are collapsed by default making it more manageable to search through the drop-down.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Event steps are indented under events in the search builder drop-down.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "Search results containing employment columns were painfully slow. They're now ... faster than that.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The search builder drop-down groups are ordered more intentionally based on the popularity of the groups and some of the keywords have been moved for clarity and utility.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Reports",
    description: "When status reports are requested as Web (i.e. HTML) pages they are run as background jobs making them more less failure-prone.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Mobile",
    description: "The mobile UI now indicates the person who created (or is credited as the source for) the timeline item.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "First name and last name search keywords support exact matching (using the \"==\" operator).",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Mobile",
    description: "The mobile UI displays addresses and contact info as bad if they're marked as such and allows users to mark them bad.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "Various performance improvements to the data import page.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "The \"magnifying glass\" pop-up displays all unique IDs for a contact (i.e. the Broadstripes ID and any external system IDs).",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "The performance of status reports containing calculated columns was improved.",
    releasedate: "2017 October"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Address dialog boxes weren't responding to clicks on the close icon.",
    releasedate: "2017 October"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "Jumping to search result pages higher than 10 000 results wasn't working.",
    releasedate: "2017 October"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "The Coverage Report by Leader was encountering errors if the timeline was included in the current layout.",
    releasedate: "2017 October"
  }, {
    type: "Fixed",
    category: "Bulk actions",
    description: "Bulk leadership changes via the Actions menu weren't properly updating the whole leadership tree.",
    releasedate: "2017 October"
  }, {
    type: "New/Improved",
    category: "Maps and shapes",
    description: "The user can choose among four formats (\"Contrast\" \"Default\" \"Neighborhood\" and \"Transport\") for the map on the shapes map page.",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "Events",
    description: "Project admins can make an event \"timeline-tracked meaning that a timeline item will be created whenever an event step is checked (or unchecked).",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "Relationships",
    description: "The relationship visualization tool shows employments and has color-coding to indicate whether people work together in the same department or shop. It also fits the size of your browser window better and has nodes scaled to represent distance from the worker in focus.",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "Data import",
    description: "The language on the headers of Step 2 (Mapping) of the data import UI has been improved.",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "While still not fast enough the Shops and Departments page in large projects will now load faster than it did.",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "Performance",
    description: "Showing the number of results next to saved searches was slowing down every page. That feature of dubious value has been removed for the sake of performance.",
    releasedate: "2017 September"
  }, {
    type: "New/Improved",
    category: "User experience/UI",
    description: "Recent searches which tend to be the most useful options in the search menu now appear above saved searches.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The \"employees\" search no longer breaks when the user submits a text value. Instead the user sees an error message.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "The shapes map page will now remember your choice for the type of map.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Relationships",
    description: "The relationship tree visualization now displays people with no relationships without an error.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "When other dialogs were open the logout dialog sometimes had problems. Those have been fixed.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Data import",
    description: "Certain characters (\"Unicode byte-marks\") appearing at the beginning of a data import file could cause errors.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Search",
    description: "The search builder was having trouble \"reverse-engineering\" searches (i.e. converting search text to the populated builder panel) containing custom fields due to case issues.",
    releasedate: "2017 September"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "Infinite scroll would sometimes get stuck in the \"on\" position when an event step was in the rightmost column of a layout.",
    releasedate: "2017 August"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Free-form text searches weren't matching on street numbers.",
    releasedate: "2017 August"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "The search and filter drop-downs were sometimes being displayed behind other items on the screen.",
    releasedate: "2017 August"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Negative employer searches (e.g. <span class=\"searchlang\">employer != \"Big Shop\"</span>) were behaving inconsistently for people with multiple employments.",
    releasedate: "2017 August"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "An admin can now create and name \"user groups.\" For the moment these can only be used for sharing quick links but we hope to add more functionality soon.",
    releasedate: "2017 July"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "An informational pop-over appears when an admin hovers over a quick link in edit mode.",
    releasedate: "2017 July"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "The \"infinite scroll\" feature on the search results is no longer causing problems when new searches are run.",
    releasedate: "2017 July"
  }, {
    type: "Fixed",
    category: "Performance",
    description: "When assigning a leader the autocomplete logic could be very ineffiicient and slow.",
    releasedate: "2017 July"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "A new switch on the General Settings page allows an admin to change the name of the \"Classification\" field to \"Job Title.\" Note: There is already a separate field on the employment called \"Job Title.\" Turning on this switch effectively hides and disables that field because the former \"Classification\" field now has that name. When this switch is on you can search and sort on \"jobtitle\" which will have the same effect as the \"classification\" keyword.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Admin",
    description: "Another new switch on the General Settings page allows an admin to change the name of the \"Code\" field to \"Assessment.\" When this switch is on you can search and sort on \"assessment\".",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Broadstripes searches can now handle \"Boolean\" clauses. This means your searches can now take this form: (this AND that) OR (the other AND something else). The search builder has changed significantly to help you build these complex queries. For detailed help with this new functionality (including video tutorials!) click here.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Sort",
    description: "Search results can now be sorted by external system ID.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Search results/layout",
    description: "A new button appears when you hover over an event header (in a search results layout). The button allows you to remove the entire event from the layout saving you some clicks.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Employment conditions in a search are applied \"together\" to the evaluated employments. This means that if you search for people with the job title \"Bartender\" and the employer \"Big Restaurant\" you will only find bartenders at Big Restaurant not people who wait tables at Big Restaurant but tend bar somewhere else (i.e. have two employments each of which matches one condition). Note: This will only work when the conditions are in the same rule group (i.e. inside the same set of parentheses).",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Bulk actions",
    description: "Improved performance of the bulk leadership assigner bulk employment creator and bulk custom field setter.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "The new search feature can now handle clauses with nested parentheses. If your search doesn't contain \"balanced parentheses\" (i.e. equal numbers of opens and closes) you'll see an error message.",
    releasedate: "2017 June"
  }, {
    type: "New/Improved",
    category: "Search",
    description: "Smart quotes (inserted by some text editors) no longer break Broadstripes searches (they are converted to dumb quotes before the search is run).",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "Putting a single quotation mark in the name of a shape group no longer causes a problem.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "The shapes map page now does a better job of keeping the pop-ups on the shapes in sync with the search boxes in the left-hand panel.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Negative employer searches (e.g. <span class=\"searchlang\">employer != \"Big Shop\"</span>) were behaving inconsistently for people with multiple employments.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Words containing AND and OR are no longer causing problems for the search logic parser.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Maps and shapes",
    description: "New validation logic prevents shape group names from being blank or containing only spaces.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "User experience/UI",
    description: "Assessment code descriptions containing apostrophes (i.e. single quotes) are no longer being truncated in the search results drop-down.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Search results/layout",
    description: "Unsharing a layout was causing the layout to disappear for everyone; now doing so assigns it to the user who unshares it.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Reports",
    description: "Reports are once again obeying the project's default sort if no custom sort is specified.",
    releasedate: "2017 June"
  }, {
    type: "Fixed",
    category: "Search",
    description: "Custom fields with parentheses in their names were making the new search logic choke but now they work.",
    releasedate: "2017 June"
  }];
  const [searchTerm, setSearchTerm] = React.useState('');
  const [selectedCategory, setSelectedCategory] = React.useState('');
  const [selectedYear, setSelectedYear] = React.useState('');
  const categories = useMemo(() => [...new Set(releaseNotes.map(item => item.category))].sort(), [releaseNotes]);
  const years = useMemo(() => [...new Set(releaseNotes.map(item => item.releasedate.split(' ')[0]))].sort().reverse(), [releaseNotes]);
  const parseReleaseDate = dateStr => {
    const [year, month] = dateStr.split(' ');
    const monthMap = {
      'January': 0,
      'February': 1,
      'March': 2,
      'April': 3,
      'May': 4,
      'June': 5,
      'July': 6,
      'August': 7,
      'September': 8,
      'October': 9,
      'November': 10,
      'December': 11
    };
    return new Date(parseInt(year), monthMap[month] || 0);
  };
  const filteredData = useMemo(() => {
    return releaseNotes.filter(item => {
      const matchesSearch = !searchTerm || item.description.toLowerCase().includes(searchTerm.toLowerCase()) || item.category.toLowerCase().includes(searchTerm.toLowerCase()) || item.type.toLowerCase().includes(searchTerm.toLowerCase());
      const matchesCategory = !selectedCategory || item.category === selectedCategory;
      const matchesYear = !selectedYear || item.releasedate.startsWith(selectedYear);
      return matchesSearch && matchesCategory && matchesYear;
    }).sort((a, b) => {
      const dateA = parseReleaseDate(a.releasedate);
      const dateB = parseReleaseDate(b.releasedate);
      return dateB - dateA;
    });
  }, [searchTerm, selectedCategory, selectedYear, releaseNotes]);
  const clearFilters = () => {
    setSearchTerm('');
    setSelectedCategory('');
    setSelectedYear('');
  };
  return <>
      {}
      <style>{`
        .react-interactive-table {
          --table-bg: #ffffff;
          --table-bg-secondary: #f9fafb;
          --table-text-primary: #111827;
          --table-text-secondary: #6b7280;
          --table-border: #e5e7eb;
        }
        
        /* Dark mode detection for this component */
        :root[data-theme="dark"] .react-interactive-table,
        :root.dark .react-interactive-table,
        html[data-theme="dark"] .react-interactive-table,
        html.dark .react-interactive-table {
          --table-bg: #1f2937;
          --table-bg-secondary: #374151;
          --table-text-primary: #f9fafb;
          --table-text-secondary: #d1d5db;
          --table-border: #4b5563;
        }
        
        /* System preference fallback */
        @media (prefers-color-scheme: dark) {
          :root:not([data-theme="light"]):not(.light) .react-interactive-table {
            --table-bg: #1f2937;
            --table-bg-secondary: #374151;
            --table-text-primary: #f9fafb;
            --table-text-secondary: #d1d5db;
            --table-border: #4b5563;
          }
        }

        /* Search language styling */
        .searchlang {
          font-size: 90%;
          font-family: monospace;
          color: #e01e5a;
          background-color: #efefef;
          border: .3px outset #bebebe;
          border-radius: 3px;
          padding: 2px;
          display: inline;
          white-space: nowrap;
        }
      `}</style>

      <div className="react-interactive-table" style={{
    margin: '0',
    padding: '1.5rem',
    backgroundColor: colors.background,
    borderRadius: '8px',
    boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
    border: `1px solid ${colors.borderColor}`,
    minHeight: '200px',
    display: 'block',
    width: '100%'
  }}>
        {}
        <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '1rem',
    marginBottom: '1.5rem',
    padding: '1rem',
    backgroundColor: colors.backgroundSecondary,
    borderRadius: '6px',
    border: `1px solid ${colors.borderColor}`
  }}>
          <input type="text" placeholder="Search release notes..." value={searchTerm} onChange={e => setSearchTerm(e.target.value)} style={{
    flex: '1',
    minWidth: '200px',
    padding: '8px 12px',
    border: `1px solid ${colors.borderColor}`,
    borderRadius: '4px',
    fontSize: '0.875rem',
    backgroundColor: colors.background,
    color: colors.textPrimary
  }} />
          <select value={selectedCategory} onChange={e => setSelectedCategory(e.target.value)} style={{
    padding: '8px 12px',
    border: `1px solid ${colors.borderColor}`,
    borderRadius: '4px',
    fontSize: '0.875rem',
    minWidth: '150px',
    backgroundColor: colors.background,
    color: colors.textPrimary
  }}>
            <option value="">All Categories</option>
            {categories.map(category => <option key={category} value={category}>{category}</option>)}
          </select>
          <select value={selectedYear} onChange={e => setSelectedYear(e.target.value)} style={{
    padding: '8px 12px',
    border: `1px solid ${colors.borderColor}`,
    borderRadius: '4px',
    fontSize: '0.875rem',
    minWidth: '120px',
    backgroundColor: colors.background,
    color: colors.textPrimary
  }}>
            <option value="">All Years</option>
            {years.map(year => <option key={year} value={year}>{year}</option>)}
          </select>
          <button onClick={clearFilters} style={{
    padding: '8px 16px',
    backgroundColor: '#ef4444',
    color: 'white',
    border: 'none',
    borderRadius: '4px',
    fontSize: '0.875rem',
    cursor: 'pointer',
    fontWeight: '500'
  }}>
            Clear Filters
          </button>
        </div>

        {}
        <div style={{
    marginBottom: '1rem',
    color: colors.textSecondary,
    fontSize: '0.875rem',
    fontWeight: '500'
  }}>
          Showing {filteredData.length} of {releaseNotes.length} release notes
          {(searchTerm || selectedCategory || selectedYear) && <span style={{
    marginLeft: '8px',
    color: '#059669'
  }}>
              (filtered)
            </span>}
        </div>

        {}
        <div style={{
    width: '100%',
    overflowX: 'auto',
    maxHeight: '600px',
    overflowY: 'auto',
    border: `1px solid ${colors.borderColor}`,
    borderRadius: '6px',
    backgroundColor: colors.background
  }}>
          <table style={{
    width: '100%',
    borderCollapse: 'collapse',
    fontSize: '0.9rem'
  }}>
            {}
            <thead>
              <tr style={{
    backgroundColor: '#2563eb'
  }}>
                <th style={{
    padding: '12px 16px',
    paddingLeft: '1.5em',
    textAlign: 'left',
    color: 'white',
    fontWeight: '600',
    fontSize: '0.875rem',
    borderBottom: '2px solid #1d4ed8',
    position: 'sticky',
    top: '0',
    zIndex: '10',
    minWidth: '100px'
  }}>
                  Type
                </th>
                <th style={{
    padding: '12px 16px',
    textAlign: 'left',
    color: 'white',
    fontWeight: '600',
    fontSize: '0.875rem',
    borderBottom: '2px solid #1d4ed8',
    position: 'sticky',
    top: '0',
    zIndex: '10',
    minWidth: '150px'
  }}>
                  Category
                </th>
                <th style={{
    padding: '12px 16px',
    textAlign: 'left',
    color: 'white',
    fontWeight: '600',
    fontSize: '0.875rem',
    borderBottom: '2px solid #1d4ed8',
    position: 'sticky',
    top: '0',
    zIndex: '10'
  }}>
                  Description
                </th>
                <th style={{
    padding: '12px 16px',
    textAlign: 'left',
    color: 'white',
    fontWeight: '600',
    fontSize: '0.875rem',
    borderBottom: '2px solid #1d4ed8',
    position: 'sticky',
    top: '0',
    zIndex: '10',
    minWidth: '120px'
  }}>
                  Release Date
                </th>
              </tr>
            </thead>
            
            {}
            <tbody>
              {filteredData.length === 0 ? <tr>
                  <td colSpan="4" style={{
    padding: '2rem',
    textAlign: 'center',
    color: colors.textSecondary,
    fontStyle: 'italic'
  }}>
                    No release notes match your current filters. Try adjusting your search or clearing filters.
                  </td>
                </tr> : filteredData.map((item, index) => <tr key={index} style={{
    backgroundColor: index % 2 === 0 ? colors.background : colors.backgroundSecondary,
    borderBottom: `1px solid ${colors.borderColor}`
  }}>
                    <td style={{
    padding: '12px 16px',
    paddingLeft: '1.5em',
    verticalAlign: 'top',
    borderRight: '1px solid #e5e7eb'
  }}>
                      <span style={{
    padding: '4px 8px',
    borderRadius: '4px',
    fontSize: '0.75rem',
    fontWeight: '600',
    backgroundColor: item.type === 'Fixed' ? '#dbeafe' : '#f3e8ff',
    color: item.type === 'Fixed' ? '#1e40af' : '#7c3aed',
    border: `1px solid ${item.type === 'Fixed' ? '#93c5fd' : '#c4b5fd'}`,
    display: 'inline-block',
    whiteSpace: 'nowrap'
  }}>
                        {item.type}
                      </span>
                    </td>
                    <td style={{
    padding: '12px 16px',
    verticalAlign: 'top',
    borderRight: '1px solid #e5e7eb'
  }}>
                      <span style={{
    padding: '4px 8px',
    borderRadius: '12px',
    fontSize: '0.75rem',
    fontWeight: '600',
    backgroundColor: '#fef3c7',
    color: '#d97706',
    border: '1px solid #fbbf24',
    display: 'inline-block',
    whiteSpace: 'nowrap'
  }}>
                        {item.category}
                      </span>
                    </td>
                    <td style={{
    padding: '12px 16px',
    lineHeight: '1.5',
    verticalAlign: 'top',
    borderRight: `1px solid ${colors.borderColor}`,
    color: colors.textPrimary
  }}>
                      <span dangerouslySetInnerHTML={{
    __html: item.description.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>')
  }} />
                    </td>
                    <td style={{
    padding: '12px 16px',
    verticalAlign: 'top',
    color: colors.textSecondary,
    fontSize: '0.875rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                      {item.releasedate}
                    </td>
                  </tr>)}
            </tbody>
          </table>
        </div>

        {}
        {(searchTerm || selectedCategory || selectedYear) && <div style={{
    marginTop: '1rem',
    padding: '0.75rem',
    backgroundColor: colors.backgroundSecondary,
    borderRadius: '4px',
    border: `1px solid ${colors.borderColor}`,
    fontSize: '0.875rem',
    color: colors.textPrimary
  }}>
            <strong>Active Filters:</strong>
            {searchTerm && <span style={{
    marginLeft: '8px'
  }}>Search: "{searchTerm}"</span>}
            {selectedCategory && <span style={{
    marginLeft: '8px'
  }}>Category: {selectedCategory}</span>}
            {selectedYear && <span style={{
    marginLeft: '8px'
  }}>Year: {selectedYear}</span>}
          </div>}
      </div>
    </>;
}

A chronological table of updates and improvements to Broadstripes. Use the filters below to find specific items.

<style global jsx>
  {`
    article {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    }

    article p {
      font-size: 14px;
      line-height: 1.2;
      color: #374151;
    }

    article h1, article h2, article h3, article h4, article h5, article h6 {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
      font-weight: 600;
    }

    article a {
      color: #1E40AF;
      text-decoration: none;
      border-bottom: 1px solid transparent;
      transition: border-color 0.2s ease;
    }

    article a:hover {
      border-bottom-color: #1E40AF;
    }

    article code {
      font-family: 'Fira Code', 'Courier New', Courier, monospace;
    }
    `}
</style>

<ReactInteractiveTable />
