What's new

Notable changes in HumanixOS — features, improvements, and fixes.
Week of October 12, 202628 updates

Setting up automatic thank-you emails is easier

Thanking donors automatically now takes one click to start. Under Finance > Campaigns, the Thank-you emails card tells you in plain words whether gifts are being thanked, and with which email. If you have no thank-you email yet, Set up a thank-you email creates a ready-to-use one, chooses it for all gifts and opens it so you can check the wording and turn it on.

A thank-you email's own page now shows where it is used (for all gifts, or for certain campaigns) and whether it is turned on, with a Use for all gifts button. When a gift won't get a thank-you because of a setting, the gift form says why and links straight to the setting.

Clearer screens and messages when filling in a form

People filling in your form now see a clear screen when a form cannot be found, has been turned off, or could not load, with a Try again button when it is worth trying. Error messages appear in the language the person picked on the form. Each address can now send 30 submissions per hour to a form, and only successful submissions count toward that.

Download a form's submissions as a spreadsheet

You can now take a form's answers into Excel or Google Sheets without retyping them. Download spreadsheet, next to Print summary on the form's page, saves every submission in the tab you're viewing (all, pending, approved or denied), across every page, as one file. Tick some submissions first to download just those.

The file has one row per submission and one column per question, with the same wording your form uses. It also shows when each submission came in, its status and, for paid forms, the payment and amount. Dates and numbers are written so the spreadsheet can sort and add them up.

Before you download, you can switch on Hide personal information for a list going to someone outside the program. Names, contact details, addresses, dates of birth and private fields are left out.

Social Security numbers are never included. Downloading is controlled by the same Forms export permission as printing a summary, which you can turn off for any role in Settings. Each download, and each printed summary, now appears in the Activity log.

Duplicate a volunteer shift

You can now make a new volunteer shift from one you already have. Choose the copy button next to any shift on the Scheduling page, or on an event's Volunteer shifts card.

The new shift opens ready to check: what volunteers will be doing, what it is for, the place, details, sign-up setting, time choice, background check and activities are already filled in. If the original has already happened, the copy moves to the same day and time next week (or the first week still to come). Shifts that have passed or were cancelled can be copied too.

Need the same shift on more than one day? Choose Add another date to make up to 10 copies in one go, each a week after the one above it by default. Change any date or time before you save.

Sign-ups, chosen times, attendance and hours are never copied, so nobody is added to the new shift or emailed about it. A copy is always a one-time shift, even when the original is part of a weekly schedule.

Send a campaign to an email list and a few extra people

An email campaign can now go to one or more email lists plus people you pick by name, in one send.

  • Add people to a list send. On the Recipients step, choose Use an Email List, pick your lists, then use "Also send to specific people" to search for anyone else who should get it.
  • Your lists stay as they are. The extra people are added to this email only. They are not added to the list or to any program, so your records stay accurate.
  • Everyone gets it once. If someone is on a list and you also added them, they receive one email.
  • Unsubscribes still count. People who unsubscribed or opted out of marketing email are left out, however they were added.
  • See who is included. The people you added are shown by name, and the confirmation before sending says how many you added.
  • Picked people carry over. If you started with Select Manually and switch to a list, the people you picked stay, shown by name.
  • A list is still needed. To send only to people you pick, use Select Manually.

New Basic, Pro and Premium plans, add-ons and discount codes

Our plans are now built around the areas of work you use, so you pay for what you need and can add more when you are ready.

  • Basic covers your core work: people, services, events, forms, reports, imports, calendar, households, organizations, and fundraising (donors, funds and campaigns), with our free email plan.
  • Pro adds Grants (with HumanixOS for Chrome), Ledger, Volunteers, Inventory and Tasks, the QuickBooks connection and the live QuickBooks tab, and an email plan and a texting plan included at no extra charge.
  • Premium adds custom roles and larger included email and texting plans.
  • Add one area at a time on Basic. Need only Grants or Volunteers? Add it from Plan and billing, and remove it whenever you like. Removing one never deletes anything: what you made there stays, and you can still view and export it.
  • More user accounts on Pro and Premium. Add extra accounts from Plan and billing as your team grows.
  • Discount codes. If you have a code, enter it at checkout. During a sale, enter it under "Have a discount code?" before you continue: one discount applies at a time, so your code is used instead of the sale price. Any discount you have shows on your Plan and billing page.
  • Already on Pro or Premium? An email or texting plan you buy adds to what your plan includes. Your plan and usage pages show the one total, for example 20,000 emails a month when Pro's 5,000 is joined by a 15,000 email plan.
  • Included texting still needs carrier approval. Your included texting plan costs nothing extra, and we still register your organization with the carriers before any texts can go out.
  • Funding partner organizations see no change. If a funding partner provides your HumanixOS account, everything stays exactly as it is.
  • Setup and data migration help stay free on every plan.

One message when several of your requests go live

When several things you asked us for go live at the same time, you now get one email listing all of them instead of one email each. Your notifications work the same way: one notification with the list.

If you turned off one kind of message in your notification settings, for example bug fixes, those items are left out of the list, and you only hear about the rest.

We can also now let you know when something you asked for by email or on a call is done, not only requests sent with the Feedback button.

Preview your form as a respondent

You can now open any form, even a draft or one that is turned off, exactly as a visitor would see it. Look for Preview in the forms list, the Share menu and the form builder. Nothing is sent from a preview, so you can click through it freely.

Printed check-in forms now show every answer

Printing a check-in submission used to leave out the person's name, email and phone. Printed forms now show every answer, including answers to questions you later removed and the members of a team registration. Social Security numbers are still never printed in full.

Form translations that finish, and Translate again

Long forms now finish translating instead of stalling. If a translation fails, the form page tells you and a Translate again button lets you retry in one click.

Volunteer agreements: confidentiality, waivers and policies

You can now ask every volunteer to agree to your organization's agreements, such as a confidentiality agreement, a liability waiver or a code of conduct.

  • Your own words. Add your agreements under Volunteers > Settings. When you change the text later, choose whether volunteers must agree again or it was only a small wording fix.
  • Agree online or on paper. Volunteers read each agreement and agree by typing their name, on the application form or when they sign in. Anyone who prefers can choose to sign a paper copy at the office instead.
  • Paper copies on file. See who chose paper, then upload the signed copy to their record. It is kept with their documents.
  • Shift sign-ups still work. A volunteer who has not finished their agreements can still sign up. Their place shows "Agreements pending" on the roster until they do.
  • Yearly renewal. Agreements can renew every year, with a reminder email before they are due.
  • Everyone on the team can see who has agreed, on each volunteer's record and in the volunteers list.

Choose which details your volunteer application requires

You now decide what a volunteer has to fill in on your application form.

  • Optional phone, date of birth and address. Each one has its own Required switch in the application form editor under Volunteers. Name and email are always required.
  • Required questions. Any of your own questions can be marked Required, except Yes/No questions. Required questions show a star on the form and volunteers are told what is missing before they submit.
  • Nothing changes until you choose. Every detail stays required until you switch it off, so your current form works as it did.
  • Forms already open stay correct. If you change a setting while someone is filling in the form, they see the updated form when they submit.

Emails to your people end with your organization's details

The emails your organization sends — volunteer shift reminders and confirmations, application updates, document requests, registration edit links and payment requests — now end with your organization's name instead of a HumanixOS copyright line.

  • Your supporters see you, not us. A volunteer, applicant or registrant who has never heard of HumanixOS no longer sees an unfamiliar company's name at the bottom of your email.
  • It reinforces your brand. The footer now matches the lighter, cleaner style already used on your donation receipts, so your logo and colours at the top stay the focus.
  • HumanixOS account emails are unchanged in purpose — sign-in, billing and other messages that really come from HumanixOS still say so, now in a lighter footer rather than a heavy black bar.

Tasks: keep separate task lists

Your team can now keep more than one task list, such as "Food pantry", "Board prep" or "Volunteer onboarding".

  • Your existing tasks: they are all in a list called General, so nothing changes until you add a second list.
  • Filtering by list: on the Tasks page, pick a list in the new List filter to see only its tasks, in both the list and the board view. The address in your browser keeps the list, so you can bookmark it or send the link to a colleague.
  • All your lists at once: with All lists chosen, set Group by to List to see one section per list, each with its number of tasks. The board and the date view show which list each task is in.
  • Dashboard card: the My tasks card can show one list instead of all of them. Pick the list when you add the card, or change it later while customizing your dashboard.
  • Adding a task to a list: a new task goes to the list you are looking at, or to the default list. You can move a task to another list from the task itself.
  • Managing lists: anyone who uses Tasks can add a list with Manage lists, next to the filters, for example one just for their own work. You can rename or delete the lists you made; people who can assign tasks can rename or delete any list. Deleting a list that still has tasks asks where to move them first, so no task is ever lost. The default list can be renamed but not deleted.

Lists only group tasks: everyone sees the same tasks they did before.

Donation receipts now look like yours

The receipt donors get for an online gift now comes entirely from your organization.

  • Your logo and colour. The receipt shows the logo and primary colour from Settings > Branding. No logo yet? Your organization's name appears at the top instead.
  • Your details at the bottom. The footer shows your name, address, EIN and email, instead of HumanixOS.
  • Replies reach you. When a donor replies to their receipt, the reply goes to your organization's email.
  • A message and a signature. On Donors > Campaigns, add a short thank-you message and who signs the receipt, and preview it before saving. The amount, date, EIN, address and tax statement are always included.

Volunteer shift emails in your organization's own look and words

The emails volunteers get about their shifts now look and sound like your organization.

  • Your logo and color. Shift reminders, confirmations, requests to work a shift, cancellations and change notices show the logo and brand color you set in Settings > Branding. So do the emails asking a volunteer for a document, saying one wasn't accepted, or reminding them that one is about to expire or has expired.
  • Your own words. In Volunteers > Settings, under Volunteer shift emails, write your own opening paragraph and sign-off for each shift email. Leave a box empty to keep the standard wording.
  • See it before it goes out. A live preview shows the email as volunteers will get it while you type.
  • Back to the standard text in one click. Reset to default removes your wording for that email.

The shift details (date, time, place and activity) are always included. Volunteers still get the standard wording in their own language; your text is sent exactly as you write it. Sign-in, password and billing emails are unchanged.

Email automations send what you built, at the right moment

Automations now send exactly the email you designed, once, and at the right time.

  • The email you edited is the email that goes out. Blocks you show only to some people are shown only to them, your current logo and colours are used, and the plain-text version always matches the email. It used to keep the original starter wording after you edited it.
  • The monthly donor welcome goes out once, on a donor's first monthly gift, not on every payment.
  • One thank-you per gift. When a donor's first gift also gets its own thank-you email, the first-time donor welcome skips its thank-you and sends the rest.
  • Event emails know the event. Use the event's name, date, time and place in an event registration email; all-day events show no time, and times are in the event's own time zone. A new wait, "Days before the event", sends a reminder before the event starts, and someone whose place or event is cancelled gets no more emails.
  • Add everyone on an email list at once, for example to start "We miss you" for your lapsed donors.
  • Easier to build. Open a step's email to edit it straight from the automation, and see which other automations send it. A step you add is connected to the one before it. You can now pick any of your emails, however many you have, and "Track opens" and "Track clicks" now do what they say. On a phone, step settings open from the bottom of the screen.

Better marketing emails: your branding, personal greetings, honest reports and respected opt-outs

We went through the whole email builder, the way campaigns are sent and the campaign reports, and fixed what was getting in the way of good emails.

Writing and designing

  • Greetings never read "Hi ,". Merge tags can have a fallback, such as "Hi {{first_name|friend}}", used when a person has no value. Every merge tag the editor offers is filled when the email goes out. You can also use your organization's phone number, non-private custom fields, and a donor's last gift and giving this year.
  • Your branding everywhere. Headers can use your organization's logo and buttons your brand colour. Change either in Settings and your campaigns, templates and automation emails follow, and new templates and starter emails start with them. Emails you already sent keep their logo when you upload a new one.
  • Buttons and photos stay inside the card. Your email's content background now sits behind every row, so buttons and pictures no longer look like they float outside it. Each button also has its own row background colour if you want it to stand out.
  • New blocks and a link picker. Pick one of your own donation pages, forms or event registrations as a link instead of typing it. There is a Donate button, a Video block and a Goal progress block, and buttons can be larger and bold.
  • Five new starter emails, in English, French and Spanish: volunteer recruitment, year-end appeal, welcome, impact report and event reminder.
  • Easier on smaller screens. On laptops and tablets the settings open in a side panel, so the email you are designing keeps its full width.

Sending

  • Opt-outs are respected everywhere. When someone says on one of your forms that they do not want marketing email, campaigns and automations both skip them.
  • Test emails look like the real thing. A test shows exactly what a recipient gets, and you can send one as someone with no first name to check your fallbacks.
  • A checklist before you send. The campaign page lists links with no address, pictures with no description, text still in square brackets and a missing mailing address, so you can fix them first.
  • Every email has a plain-text version that matches it, and you can set its preview text, which helps it reach the inbox.
  • Scheduled sends that cannot go out tell you. If a scheduled campaign fails, the person who scheduled it gets a notification saying why. When you schedule a campaign with more recipients than your plan has left this month, you are told straight away.

Reports you can trust

  • Rates are recalculated the same way everywhere. The results page and your list of campaigns show the share of people who received the email and then opened it or clicked. A campaign everyone opened shows 100%, and no rate can go above 100%.
  • Opens that were not a person are left out. Some email apps open every message for privacy reasons, and email security tools click every link to check it. These no longer count, and the open rate is labelled approximate.
  • People you could not email are shown apart. Someone who had already unsubscribed or opted out is listed as "Not sent" with the reason, instead of counting as an unsubscribe from this campaign.
  • Every link is listed, including links nobody clicked, and you can download the link report and who clicked as spreadsheets if you can export people's records.
  • The chart covers the first week after sending, in your own time zone.
  • Links with special characters work. Some donation and form links with codes in them opened the wrong page after someone clicked; they now open correctly, and "Call us" links typed with a capital letter work too.
  • The unsubscribe line is in your organization's language, and the plain-text version of each email has its own unsubscribe link.

Connecting PayPal now finishes setup on its own

Connecting PayPal in Settings > Connected apps now records the PayPal account your donations are paid into, so the PayPal button appears on your donation page straight away. Before this fix, PayPal asked you to "Confirm account" and then said it could not tell which account to pay.

  • If you connected PayPal before today and still see "Confirm your PayPal account", disconnect PayPal and connect it again once.
  • If PayPal still can't share your account, you'll now see a message asking you to contact HumanixOS support, rather than being told to reconnect.

Sender reputation and a daily email limit

Every organization's campaign and automation email now has a sender reputation, so one sender with a messy list can't hurt delivery for everyone else.

  • See where you stand. Settings → Email shows your sender reputation under "Emails this month": Good, New sender, Poor or Bad, with today's limit and how much of it is used.
  • Good senders have no daily limit. Most organizations are already Good and won't notice a thing.
  • New senders start at 250 emails a day. The limit lifts on its own after your first 500 emails, as long as few of them bounce or are marked as spam.
  • Too many bounces or spam complaints lower the limit. The page says which one, what the line is, and what to do: remove addresses that bounced and only email people who asked to hear from you. The limit lifts on its own as your numbers recover.
  • Nothing is half sent. A campaign that doesn't fit in today's limit doesn't start, and tells you when you can send again. Automation emails over the limit wait for the next day instead of being skipped.
  • Gift thank-you emails are never held by the daily limit. Donors are thanked whatever your sender reputation is. They still count toward the day's total.
  • Password resets, receipts and other account emails are never limited.

Your logo shows at a proper size

Your organization's logo now appears larger and more consistently on public forms, check-in pages, donation pages, printed forms and the emails your supporters receive.

  • Medium is bigger. Forms that never picked a size get the new, larger Medium automatically.
  • Square and wide logos both fit. Square logos are no longer tiny, and wide logos stay inside the screen on a phone.
  • Donation pages show your whole logo instead of cropping it into a small circle.
  • Printouts and emails follow the logo size you choose in Settings > Branding. Emails also use your organization's name as the logo's description.
  • The Branding preview now shows your logo at its real size, so you can see what each size looks like before you save.

Questions only the group answers

Group registration forms can now ask questions that only the people in the group answer, without asking the person registering the group.

  • In the form builder's Options tab, open the Group registration section and choose Add a question for each person. Pick the answer type (text, number, yes/no, date, a dropdown or a list of choices) and whether it's required.
  • Each person answers on their own card, and their answer is saved on their own registration, so it shows on the event's roster like any other event question.
  • If your form has no questions yet, the section now explains your two options: add a question to the form to ask everyone, or add one here for the group only.

Group registration: your own questions and your own words

Group registration (formerly team registration) now fits more than sports teams, and can ask every person in the group your own questions.

  • Your own words. The form now says "Your group" and "Add a person" by default, and you can rename it per form, for example "Your team" and "Runner", or "Your family" and "Family member". Your wording is translated with the rest of the form.
  • Pick from the questions already on your form. In the form builder's Options tab, the Group registration section lists your event questions (like T-shirt size or dietary needs) and your person fields. Tick the ones each person should answer, and mark any as required.
  • Answers land in the right place. Event answers are saved on each person's own registration, so they show on the roster like everyone else's. Person field answers are saved when a new person is added for them.
  • See it before you publish. The Style & Preview tab now shows the group section, with the person cards and the questions you picked.
  • Dates of birth in the group section can now be typed or picked from a calendar.

All-day events, and one date picker everywhere

Events can now be all day. Turn on All day when you create or edit an event and choose its first and last day: a one-day food drive or a three-day conference. An all-day event shows as its dates, with no times, on the event page, the events list, the calendar (on every day it runs), the check-in page and registration forms. It goes to connected Google and Microsoft calendars as a real all-day entry instead of "12:00 AM – 11:59 PM", and event templates and repeating events can be all day too.

Every date field now uses the same date picker. Instead of your browser's built-in date box, which looked different on every browser and phone, every date in HumanixOS, including the dates on your public forms, works the same way: type the date straight in, or open the calendar beside it. Typing follows your language's order (12/31/2026 in English), adds the slashes for you, and keeps anything it can't read on screen, marked, so you can fix it rather than losing it. The calendar shows dates in your language and format, has month and year menus so a birth date decades ago is two clicks away, and fits on a phone screen. On a public form, the calendar follows the language the person chose for the form.

Registration forms name their event, and people can change their own registration

An event's registration form now shows the event's name and date at the top. It always shows the event as it is now: rename or reschedule the event and its registration form follows, with nothing to update on the form. Forms you already have get this too, and your form's own title stays exactly as you wrote it.

People who have already registered can now change their registration instead of registering a second time. On the registration form they choose Already registered? Change your registration and type the email address they registered with. We email them a link that works once, for an hour. It opens the form with their answers filled in, and saving updates their existing registration, so you never get a duplicate attendee.

A few things stay as they were, to keep your records safe:

  • Their name, contact details and anything saved to their record can't be changed through the link. They can contact you for that.
  • They can change their time slot when the event has them, as long as the new time has room. On a paid registration the time slot can't be changed online.
  • The page never says whether an email address is registered, so it can't be used to find out who signed up.

Each change appears in your Activity log.

Fix and resubmit a refused texting registration

If the carriers refuse your text messaging registration, the setup page now says so plainly and shows their reason, instead of still reading "Approval pending".

When the refusal is one the carriers will look at again, a Fix and resubmit button lets you correct your organization's details, such as adding your website, and send the registration back for review without contacting us. You can resubmit twice from the app; after that, or for a refusal the carriers won't reopen, contact support and we'll take it from there. Nothing is charged until your registration is approved.

Setup now also tells you up front that the carriers look for a website, or a public page that clearly shows your organization, and warns you if you leave it blank, since most registrations without one are refused.

Register a whole team with one form

Event registration forms can now take a whole team at once, for a 5K team, a youth league side or a group from one company.

Turn on Team members in a registration form's settings, choose what you need for each member (first name is always asked; last name, email, phone, date of birth and year of birth are optional), and set the smallest and largest team you accept. The team captain fills in the form for themselves and adds a card for each teammate, on a phone or a computer.

Every team member becomes their own person in your records and their own registration. If someone is already on file and their details match, they're linked to that record; otherwise they're added. On the event roster the team is shown together under the captain, and each member is checked in on their own and counts as served.

If the whole team doesn't fit in the event, the whole team goes on the waitlist together, so a team is never split. A team section can't be combined with a registration fee yet.

Tasks: a to-do list for your whole team

HumanixOS now has Tasks, a shared to-do list for your team, under Tools in the sidebar.

  • Assign work. Give a task a title, a due date and a priority, and assign it to a teammate. They get a notification.
  • See what's due. Your tasks are grouped into Overdue, Today, This week and Later. Switch to the board to drag tasks from To do to In progress to Done.
  • Repeat routine chores. Set a task to repeat daily, weekly or monthly. When you finish it, the next one appears with its new due date.
  • Stay on top of it. A "My tasks" card on your dashboard lets you add a task and tick tasks off without leaving the home page. When something is due or overdue, you get a notification and a short morning email. The email only says how many tasks you have, never what they are, and you can turn it off in your notification settings.

Who can do what is set in Roles and permissions. By default everyone works their own tasks, and admins can assign tasks to anyone and see the whole team's list. Tasks is on for every organization and can be turned off in Settings > Modules.

Grant tasks on your grants work exactly as before.

Week of October 5, 202674 updates

Easier to use with a keyboard or screen reader

We reviewed every page for accessibility and fixed what we found.

  • Keyboard: everything you can click now works from the keyboard too. That includes form and grant cards, dashboard tiles, table column sorting and filtering, and the email builder, where blocks can now be moved up and down without dragging.
  • Screen readers:
    • Form fields across the app, public forms and donation pages are connected to their labels.
    • Errors are announced when they appear.
    • Icon buttons, charts and loading indicators now have names screen readers read out.
  • Visibility: input borders, toggles and chart colours have stronger contrast, and actions that appeared only on hover now also appear when you tab to them.
  • Public pages: they have clearer page titles and structure. The two-factor sign-in code boxes are labelled.

Delete campaigns, and edit gifts of goods without losing their description

You can now delete a campaign from the Campaigns page. A campaign that has gifts, pledges or recurring gifts can't be deleted, so its giving history stays intact: mark it Completed or Cancelled instead. A campaign's end date can no longer be set before its start date.

Editing a gift of goods now shows what was donated. Before, the description field opened empty, and saving the edit erased it.

An inactive fund can no longer be made the default fund, and the default fund can't be made inactive until another fund is the default, so new campaigns are never linked to a fund you have retired.

Cancelling or reopening an event keeps its settings

Cancelling an event, or reopening a cancelled one, could quietly change settings you never touched: the time zone went back to UTC, an online or hybrid event became in person, the number of guests each person may bring went back to none, and a public event stopped being public. These settings now stay exactly as you left them.

Saving an event as a template now also keeps the event's tags, so every event you create from that template starts with the same tags.

Search your donations, and see every donor's name

The search box on All Donations now works. Type a donor's name, a campaign or fund, a check number, or words from a gift's notes or in-kind description, and the list narrows to the gifts that match.

Gifts from organizations and households you added in HumanixOS also show the donor's name again, where they used to say "Unknown".

Donor screens: clearer names, wider search, and a message when a name is missing

A donor's page now shows the donor's full name, status and type on a line of their own, so long names and both badges are no longer cut off, on a phone or on a wide screen.

The search boxes on the Donors list and All Donations keep a readable width at every screen size, including when "Clear filters" appears beside the filters.

Clicking Create Donor without a name now says that a name is needed, under the name field, instead of doing nothing.

When a search or filter on the Donors list matches no one, the list says so and offers to clear the filters, instead of suggesting you add your first donor.

Forms keep your dropdown choices and show answers in order

A dropdown or multiple-choice question saved to people's records now keeps its choices exactly as you wrote them. Before, a question with Red, Green and Blue could show up on a person's record as "red", "green" and "blue".

A few other improvements to forms:

  • Opening a draft form no longer changes its "Last edited" date. Only an actual change does.
  • When you review a submission, the answers are listed in the order your form asks them.
  • The forms list can now be filtered to event registration, check-in and survey forms.
  • A new form's starting name uses your organization's own word for the people you serve.

Form review tells you when approving will update someone you already have

When the same person filled in a form twice, the review screen for the second submission could say approving would add a new person, and then approving updated the person already on file instead, replacing their answers.

The review screen now checks at the moment you open it. If approving will update someone, it names them and the button says Approve & Update. If that changes while the screen is open, approving stops and shows you the new outcome instead of going ahead.

Approving a form submission now also appears in the Activity log, under the name of the person who approved it.

Grant fixes: funder websites, a readable timeline, and safer document deletes

  • A funder website typed without "https://" (like example.org) now opens the funder's site. Before, "Visit Funder Website" could lead back into HumanixOS instead.
  • A grant's timeline now shows stage changes with their real names, such as "Stage changed to Under Review", in your language.
  • Deleting a grant document now asks you to confirm first.
  • An opportunity's maximum amount can no longer be lower than its minimum.
  • Submitting an empty grant report now tells you what to add before it can be submitted.

More accurate grant pipeline and compliance figures

A few grant figures now read the way you would expect:

  • New grants get their stage's probability. When you leave Probability blank on a new grant, it is set from the grant's stage (for example 60% for Proposal Submitted), instead of 0%. A probability you type yourself is kept.
  • Weighted Pipeline counts grants still in progress. Awarded, rejected and closed grants are no longer added to it.
  • Compliance Rate counts each requirement against its own report. A requirement that is past due with no report now lowers the rate, even if a different report was submitted on time, and Overdue counts only requirements still waiting on their report.

Grants created earlier with a probability of 0% keep it; open the grant to set the probability you want.

Ledger exports read the way the ledger does

Exporting the ledger to CSV or Excel now writes each column the way you see it on screen. The QuickBooks column says whether an entry was sent instead of showing raw technical text, the Function column carries the whole program / management / fundraising split (including a split taken from the category, or "Not allocated"), and the receipt count has its own "Receipts" heading.

Ledger spreadsheets import as transactions

Importing a simple ledger, with columns like Date, Type, Payee, Description, Amount, Category and Method, could be read as donations instead of transactions. Every row then asked for a transaction date even though the file had one, while the mapping step said every column was matched.

Ledger files now map to transactions, gift spreadsheets still map to donors and gifts, and the mapping step tells you plainly when a required column is still missing.

New ledger rows appear at the top

On a long ledger, rows added with Add used to land below every entry, so you had to scroll through the whole ledger to reach them. New rows now appear at the top, ready to type in, and the count under the table no longer counts them as loaded entries.

A few smaller ledger fixes:

  • Financials now says to reconnect QuickBooks when the connection needs re-authorising, instead of asking you to connect it again.
  • Pressing Escape in a transaction's details now asks before throwing away a function split you have not saved.
  • The Export CSV button on the Summary tab is no longer cut off on a phone.
  • A date that does not exist, such as February 31, is now refused with a clear message instead of an error.

People counts on the Organizations page, and safer cancel and remove

If you track more than about 200 organizations, the Organizations page stopped showing how many people belong to each one: every card lost its count, the Org Members total read 0, and sorting by Most People did nothing. The counts are back, however many organizations you have.

Two actions now ask before they happen. Cancel event shows a confirmation, with an optional reason for the cancellation. Removing a program from an organization's page says how many records it deletes and waits for you to confirm.

The roster on an event now labels people with your organization's own word for them, and an organization's linked programs show their status in your language.

Clearer edits on the People list and in a person's activity history

When a change typed into the People list could not be saved, such as an email address that isn't valid, the cell kept showing what you typed even though the record still held the old value. The only sign was a small "1 failed" badge. Now the cell goes back to the saved value right away, and a message tells you why the change wasn't saved.

A person's activity history also lists edited fields by the names you see on the record, in your language, instead of internal column names.

Number fields sort as numbers on every program

On a program you created yourself, sorting a Whole number, Decimal or Currency column put 10 before 9, because the values were sorted as text. They now sort as numbers, and these fields also offer totals among the suggested dashboard widgets.

A few related fixes in program settings and the programs list:

  • Turning on class sessions or private notes right after editing the description no longer switches itself back off.
  • After you delete a program, the totals at the top of the programs list update straight away instead of after a reload.
  • Adding new choices to a program's dropdown field during an import now works on programs created in HumanixOS too.

QR check-in can use your camera again

The QR scanner on an event's check-in page and on the volunteer shift kiosk could not open the camera, and showed a camera error instead of the live view. Both scanners now open the camera once you allow it in your browser, so you can check people in by scanning their QR code.

Report charts now count everyone in the report

When you created a report from a long list of people or program entries, some of its charts only counted the first rows loaded on screen. A report of 245 people could show a contact chart that added up to 100.

Saved reports now chart every person or entry they include. While you build a report, the charts still preview the rows on screen, and a note tells you when the saved report will count more.

Also fixed:

  • Clearing a report's summary and saving now removes the summary.
  • The messages you see while a report is being created now appear in your language and use your organization's own words, and the "is generating" message closes once the report is ready.

Report exports keep every chart

A report's PDF and Excel exports now include every chart you see on the report. Breakdowns with many rows, such as Top Cities and By State, are shown on the report as a list, and they used to be left out of both files. They now appear in the PDF as a list of names and counts, and in the Excel file's Charts sheet as rows.

Charts you added yourself, and the charts on a people report, are now in the exports too, worked out from the same data the report shows. If you choose to leave out personal information when exporting, the charts leave it out as well.

Export a program list as Excel or PDF

You can now export a program's list as an Excel workbook or a PDF, as well as a CSV. Open More on the program's page and pick the format you want under Export.

  • Excel (.xlsx) opens straight in Excel with no import step. The header row stays in place as you scroll, each column has a filter, and numbers and dates are real numbers and dates you can sort and add up.
  • PDF is a tidy, read-only document to share with a board member or funder: the program's name, your organization, the date it was made, how many entries it holds, and a table that keeps its column headings and page numbers on every page. Dates read the way they do in your language. A list too wide for one page carries on across the following pages, so no column is left out.
  • CSV keeps the same layout as before.

Every format now holds every entry in the list, with your filters, search and sorting applied, not just the entries you have scrolled to. A long list takes a moment to gather, and the export shows its progress while it does. Choices from a list read as their names (several choices are separated by commas, in the CSV too), an attached file reads as its file name, and a person's organizations are included by name.

A PDF can hold up to 5,000 entries; for a longer list, filter it first or choose Excel or CSV. An export holds up to 50,000 entries. A few characters, such as emoji or letters from some alphabets, cannot be shown in a PDF; they are replaced, and the PDF says so. Excel and CSV keep every character.

Programs that track class attendance can export their attendance in the same three formats from the Attendance page.

Stay in the right organization after paying or connecting an app

If you belong to more than one organization, coming back to HumanixOS from a payment page, from connecting another app, or from a link in an email could quietly switch you to a different organization. Finishing a texting plan purchase, for example, could show an error and leave the setup stuck on its first step, even though your card had been saved.

You now come back to the organization you were working in.

Automation templates that are ready to use

The built-in email automation templates now come with their emails already written. When you start from a template, each email in the series is created for you as a draft you can read and edit in the email builder, so the automation is ready to switch on after a quick review.

There are seven templates: a welcome series, a thank-you for each gift, a welcome for first-time donors that also lets your team know, a welcome for monthly donors, an event registration series, a "we miss you" series that stops on its own when the person gives again, and a form intake that alerts your team and lets the person know their form arrived.

Templates, their emails and their descriptions now appear in your language, and the number of emails and how long each series runs are always accurate.

You can also preview any email step as it would reach a particular client, with their details filled in, before you switch the automation on. Nothing is sent when you preview.

Checklist fields for wish lists and other lists

Services have a new field type, Checklist. Use it for anything that is a list of items you tick off, like a child's holiday wish list, a supply list or the documents a family has brought in.

Add a Checklist as a family member field or as one of the service's own fields. Each family member or entry then gets its own list: type an item and press Enter, or paste a whole list at once and each line becomes an item. Tick items off as they are covered, rename them or remove them.

In the service table a checklist shows how much is done, for example "12 of 40 checked off", and opens the list when you edit the cell. The printed family sheet lists every item with a box, ticked where it is covered, so a sponsor can see at a glance what is still needed and nothing gets bought twice. Exports show the list as text, with [x] for a checked item and [ ] for one that is not.

An easier automation builder

Building an email automation is smoother:

  • Steps you drag onto the canvas land where you drop them, and steps you click to add go neatly below the one you are working on instead of piling up in one spot. You can also add steps with the keyboard.
  • Undo now undoes one change at a time: a whole edit to a field, a move, or a deleted step.
  • Save only says your work is saved once it really is. If saving fails, the automation stays marked as unsaved so nothing is lost.
  • Switching to the Enrollments or Analytics tab no longer throws away changes you have not saved yet.
  • When a step checks or updates a client field, you now pick the field by name from a list, and dropdown or yes/no fields offer their choices.
  • You can duplicate an automation from its menu. The copy starts as a draft.
  • The Enrollments tab can show everyone, not just the newest 20, and Analytics is fully translated.

Private notes for sensitive family details

A service can now keep private notes on each entry: a safe place for restricted details such as health, legal or safety information about a family.

Turn them on in the service's settings with the Private notes switch. Each entry's page then has a Private notes section, and the service table gets a read-only Private notes column.

Only people whose role allows it can see private notes. Owners and admins can by default. Members and managers cannot until an admin turns on Private notes in that role's permissions. To change the notes, a person also needs to be able to edit the service's records.

Private notes are never printed on family sheets and never sent to AI features, such as report summaries. They only appear in a table download for someone who can see them. Turning the switch off hides the notes but does not delete them.

See and fix your QuickBooks books without leaving HumanixOS

If your organization uses QuickBooks Online, Finance now has a QuickBooks page. It lists every transaction in your QuickBooks books for the dates you choose (this fiscal year to date to start), read straight from QuickBooks: date, type, number, payee, account, class, amount and memo. You can sort, filter and search the list, and open any transaction in QuickBooks with one click.

Expenses, deposits and bills can be corrected right there. For a transaction with one line you can change its date, payee, memo, account, class and amount; for one with several lines, its date, memo and class. You can also void one. Changes are saved straight to QuickBooks. If someone changed the same transaction in QuickBooks after you opened the page, you are asked to reload instead of overwriting their change.

Some transactions stay read-only here: payroll, bill payments, transfers, journal entries, invoices and other types, anything reconciled, anything dated in a closed period, and entries sent from your HumanixOS ledger, which you keep editing in the ledger. New entries are still recorded in the ledger; the Record an entry button takes you there.

Anyone who can see Finance can view the page. Changing QuickBooks needs the new Edit QuickBooks transactions permission, which admins have by default and which you can give to other roles in their permissions. The ledger's totals now say Recorded in HumanixOS, so they are not mistaken for your full books.

See what is running low, and order the exact size or color

You can now set a reorder point on any inventory item, or on each size or color of an item with variants. Open the item and set the number in the stock section. When the stock on hand drops to that number or below, the item shows as running low.

To see everything that is running low, choose Running low in the stock filter on the inventory page. From that list you can put one item, or all of them, on a new purchase order with the quantities filled in for you to adjust. Nothing is sent to anyone; the list is there when you want it.

Purchase orders now name the exact variant you are ordering, picked from the item's own list, and you can add a new size or color right on the order. When the goods arrive, each received line is matched to the order line it was received against, so the purchase order shows what is still outstanding for each variant, and notes when something arrived as a different variant than the one ordered.

Simpler donation page setup

Creating or editing a donation page now opens a full page instead of a long pop-up window. The settings are grouped under plain headings (Basics, Gift amounts, Where the money goes, Look, After someone gives), and a live preview beside them shows how donors will see the card as you make changes.

Gift amounts are now buttons you add and remove one at a time, instead of a list typed with commas. The web address fills in from the page name, and you only change it if you want to.

Choosing a color is easier: your brand color is picked by default, and you can choose from a set of colors that keep the donate button easy to read, or pick any color you like. The logo works the same way, and you can now add a logo while creating a page instead of afterwards.

Donors, Volunteers, Funds and Campaigns are no longer marked as Beta.

Tidier form pages

A form's page no longer shows a scrollbar under its top bar when the form has a long name. The name now shortens to fit, and you can hover over it to see it in full.

The form's type, its service or event, and its tags now sit on their own line just below the top bar, so they're always visible. Forms for an event now show which event they belong to, just like on the forms list.

To make room, Activate, Deactivate and Delete have moved into the "More actions" menu (the three dots next to Edit Form).

The first screen of a new form now has the same top bar as the rest of HumanixOS, and it stays in place as you scroll.

Void hours from a scheduled shift

You can now void any volunteer hours on the Hours page, including hours that came from a scheduled shift. This helps when a volunteer cancels at the last minute, a shift was recorded twice, or the hours shouldn't count for any other reason.

Voiding a shift's hours leaves the shift and its attendance exactly as they are. The hours stop counting in totals, reports and the volunteer's portal, and they stay voided even if someone later checks the volunteer in or out on the schedule. Click Restore to count them again.

Before anything is voided, you're now asked to confirm, so a stray click can't remove hours.

If the volunteer didn't come at all, marking a no-show on the schedule is still the best record. Hours removed that way show "Removed by a no-show" and come back when you clear the no-show.

Better on phones and tablets

We went through every page and popup in HumanixOS on phones and tablets and fixed what got in the way.

  • Pages no longer slide sideways on a phone. Person and donor pages, donation lists, forms, programs and reports now fit the screen, and wide tables scroll inside their own box instead of cutting off columns.
  • The page title at the top is readable on a phone, and the buttons along the top of a page now wrap onto a second line instead of disappearing off the edge of the screen.
  • Typing into a field on an iPhone no longer zooms the page in.
  • Buttons are bigger on touch screens, so they are easier to tap.
  • Scrolling a list with your finger no longer picks up the item under it by accident. To drag something on a touch screen, press and hold it first.
  • The email designer and the form builder stack their panels on a phone, so you can see what you are building.
  • Confirmation popups and dropdown panels fit the screen and scroll inside themselves, and on Android the keyboard no longer hides a popup's buttons.

Client report summaries now sound like you

The AI summary on a client report is now written the way your organization would describe the people it serves: "we serve 48 people across Rhode Island", not "the data shows 48 clients". It no longer comments on your records or hands you recommendations, so you can drop it straight into a board packet or a grant report, the same way the service and event report summaries already read.

Content library: questions, answers and tags

The grants content library now keeps what you actually reuse: answers to the questions funders ask.

A content block is now just a Question, an Answer and Tags. Write the question the way funders ask it ("Describe the population you serve"), paste your answer, and add a few tags such as "mission", "youth" or "2026". Tags you have used before are suggested as you type. You no longer have to pick a name, a description, a section type and a category before you can save.

On the library page:

  • Each card shows the question, the start of the answer and its tags, with buttons to copy the answer and to edit it.
  • Search looks through the questions, the answers and the tags.
  • Filter the library by tag, or click a tag on a card to see every block that has it.
  • The answer's character and word count shows on the card and while you write, so you can check it against a funder's limits.
  • You can delete a block from its Edit window.

Your existing blocks keep everything they had. An old description shows as a note under the answer when you edit the block, and you can clear it. When you import grant content from a spreadsheet, a Question column and an Answer column are all you need.

Drag fields from the side panel straight into your form

In the form builder, you can now drag any field or question type from the panel on the left and drop it exactly where it belongs in your form: above or below another field, beside a field to share its row, or onto an empty form to start it off.

While you drag, a line shows where the field will land, the same line you see when moving a field that is already on the form. Letting go anywhere outside the form, or pressing Escape, adds nothing. A question you drop in opens its settings straight away so you can type its label.

Clicking a field still adds it to the end of the form, just as before. On a tablet, press and hold a field to drag it; swiping the panel still scrolls.

Clearer family counts on household services

On a service that serves families, adding a person with "Add someone not on file" now adds exactly one person for every family. Before, a family that signed up through a form could gain an extra person, because the head of the family was added along with the person you typed in.

The counts now have names that match what they count:

  • People is the household size you entered for the family.
  • On file (on the household's own page) counts the people in the family who have their own record. Adding someone "not on file" to a service doesn't change it.
  • Listed (on the service, the family sheet and service reports) counts the people named for that service, including anyone you added who isn't on file.

On the service page, the households list and a household's own page, hover over the small info icon next to a count to see what it counts.

Find duplicates works for large organizations again

Find duplicates on your people list now finishes in a few seconds, even for organizations with tens of thousands of records. Before, organizations with a few thousand people could wait more than a minute and then get an error instead of results.

The same pairs are found as before, and pairs you marked as not duplicates stay hidden.

Values that many people share, like a placeholder email or your office address, no longer stop the scan. They are set aside when looking for pairs, and the results say so.

Form descriptions are always readable

Your secondary brand color no longer colors the description on public forms and check-in forms. A light or pale secondary color could make that text hard to read, so descriptions and help text now always use the form's own readable text color.

The form builder's Style preview now shows the same text and border colors your visitors see. Your secondary color stays saved with your branding and is offered as a quick pick in the email builder, but it is never used for text.

One Opportunities board from lead to award, and a Research page

Opportunities and Pipeline are now one board. Grants → Opportunities shows your leads (New, Reviewing, Qualified) and then every grant stage, from Prospect to Awarded, on a single board. Drag a qualified lead into a grant stage to make it a grant: the Promote form opens with that stage already chosen. The new grant takes the lead's place on the board, and the grant's page links back to the opportunity it came from. Use the filter to show everything, leads only or grants only, and the Show disqualified switch to bring back leads you set aside. Old links to the Pipeline page now open this board showing your grants.

Research has its own page. Choose Research on the Opportunities board to search for grants with AI on a full page instead of a small window. Your results stay put while you open a funder's site in another tab or step back to the board. Tick the results you want, or choose Select all found, and add them all at once with Add selected as opportunities. Each one then shows as Added, with a link to it.

No more repeats. Research now leaves out grants and opportunities you already have, and tells you how many it left out, with a switch to see them. A different program from a funder you already work with still shows.

Links on almost every result. Research now finds a link for nearly every lead. When a program's own page can't be used, it links to the funder's grants page instead and says so, and when a funder's site wouldn't let us check the link, the link is still shown with a short note.

Import Word documents, financial statements and sheets with complicated layouts

You can now import a Word document (.docx). Each table in the document becomes its own sheet that you can pick from, an intake form laid out as labels and answers becomes one row, and a document with several forms becomes one row per form. If the document has no table, you will be asked to put the data in a table or save it as a spreadsheet first.

Year-end financial statements can now be brought into your ledger. A statement with title rows, section headings, line items and totals, whether it is a spreadsheet or a Word document, is turned into one table: each line with an amount becomes a ledger entry, its section becomes the category, and income or expense comes from the section. Totals and lines with no amount are left out, and lines without a date of their own get a date you choose.

Spreadsheets with more complicated layouts are now easier to import too: header rows stacked two or three deep, the same header repeated for each week or site, records laid out sideways, and merged cells. The import shows what it found next to your file, and you can use the restructured table, adjust it, or keep the file as it is. Nothing changes until you choose.

You can download the converted table as an Excel file to check or fix it. PDF files and older .doc files can't be imported: open them and save them as .docx or .xlsx first.

Print all of a form's submissions as one summary

You no longer have to print a form's submissions one at a time. Print summary, on the form's page, prints every submission in the tab you're viewing (all, pending, approved or denied), across every page, in one go. Tick some submissions first to print just those.

The summary starts with each question's results: how many people chose each option, with a simple bar, the lowest, highest and average of number answers, the earliest and latest dates, and the written answers. Every question shows how many people answered it and how many skipped it. After that comes a table with one row per submission.

When you print, you can:

  • Hide personal information, for a summary going to a board meeting or a funder. Names, contact details, addresses and private fields are left off, and the counts still print.
  • Include a full copy of each submission, which adds each filled-out form after the summary, each one starting on a new page.

Social Security numbers and payment card details are never printed. Printing a summary is controlled by the Forms export permission, which you can turn off for any role in Settings.

Record anonymous people served

Some services reach people you never take names for, like a walk-up meal or a drop-in hour. You can now record them in one step: open the service and choose Record anonymous, enter how many people you served, the date, and any service details that applied to everyone.

Each person counts as a person served and as a service entry, so the number shows up in the service's totals, in your reports, and for your funding partners. No one is added to your people list, and anonymous entries never show up when you check for duplicates.

Anonymous entries appear in the service's table as "Anonymous", where you can edit or remove them like any other entry.

Hear back when your idea or bug fix is live

When you send us an idea or report a bug with the Feedback button, we now tell you when it's done. Once the change is live in HumanixOS, you get an email, in your language, quoting what you sent us. If you use HumanixOS as part of an organization's team, you also see it in your notifications, and you can turn these messages off in your notification settings.

If several people asked for the same thing, everyone who asked hears about it.

A page for every service entry, and family sheets you can shape

Every entry on a service now has a page of its own. Open it from the service table, from a person's page or from a household's page to see everything recorded about that delivery in one place: who was served, the date, the notes, every field value, who recorded it and, for a family, everyone listed. You can edit it right there, and the link is one you can send to a colleague.

A household's entry page has a Print family sheet button that prints that one family's sheet, so you no longer have to print the whole stack to hand one sponsor their page.

The print dialog also lets you choose what goes on the sheet: turn the contact details, notes and roster on or off, pick which member details print and in what order, and add the service's own fields. Anyone who can edit the service can save the choice as its default. "Hide personal information" still works on top of whatever you choose, and client IDs and Social Security numbers never print.

Setting up a service's fields works the same way everywhere

When you create a new service, the fields you record for each delivery and the fields you record for each family member are now set up the same way. Type the field's name, choose its type, and select Add field. Your fields show above the add row, and you can move them up or down to set the order your staff will see.

Choosing Dropdown or Multi-select opens a box for the choices straight away, and the page tells you if a dropdown still needs a choice before you save. Field types are now shown in French and Spanish too.

The same editor is used when you create or edit a service template. If you have added family member fields and leave the page before saving, you are now asked first, so they are not lost.

Editing a service's fields works like creating them

A service's settings now use the same field editor as the new service page. Every field is listed with its name and type, ready to change, so you can rename a field, change its type, add or reorder choices, and move fields up or down without opening each one. Add new fields in the row below the list, including File fields, where you choose which files are accepted.

Changes are now saved together when you select Save fields. If a change would remove a field that already holds answers, or change its type, you see one message listing every field affected and how many records hold a value before anything is saved. Renaming a field keeps all of its answers. If you close the settings with changes you have not saved, you are asked first.

Edit in the services list now opens the same settings, so a service is edited one way wherever you start.

Service visits no longer fill your calendar

Each time you record that you served someone, that visit used to appear as its own item on the calendar. A busy program could add hundreds a week, and your events and deadlines got lost among them.

Your calendar now shows only what is scheduled: events, grant dates, scheduled email sends and staff dates. Events still show as events, including events where attendance is recorded as service.

Calendar subscription links no longer list service visits either, so the names of people you serve, and any notes about their visits, no longer reach personal calendar apps. The option has been removed from the calendar feed settings.

Your service records are unchanged. You can still find them on each service's page and in your reports.

Text a contact, with or without a picture

You can now send a text to one of your contacts straight from SMS > Contacts. Choose the message icon next to a contact with a phone number, write your message or pick a template, and attach a picture if you like.

The usual rules apply: texts only go to contacts who agreed to receive them, and a picture text counts as 3 texts from your monthly allowance. If a text can't be sent, the window tells you why, for example that the contact opted out or hasn't agreed to texts yet.

Texts to contacts now show the contact's name in Settings, under Messages, along with any picture that was sent.

Texting setup: one less thing to write

Setting up text messaging no longer asks you to describe how you'll use it. We now describe your texts to the mobile carriers with a standard description (appointment reminders, distribution notices and program updates to people who opted in, plus fundraising updates for a verified 501(c)(3) that qualifies as a charity), with your organization's name in it. Your public texting terms page shows the description that was filed.

Ask many volunteers for a document at once, and expiry reminders

You no longer have to open each volunteer's record to ask for a document. On the Volunteers page, tick the volunteers you want and choose Request document, or ask everyone who doesn't have a valid one yet, for example every active volunteer without a current food handler card.

Before anything is sent, you'll see how many volunteers will be asked. Volunteers who already have a valid one, or who were already asked, are left out. Each volunteer gets an email and sees the request in the volunteer portal, just like a single request.

Volunteers are now also reminded by email when a document they handed in is about to expire: once 30 days before its valid-until date, and once when it has expired, so they can upload a new one in time. Each reminder is sent only once.

Roomier popup windows

Popup windows across HumanixOS are wider and sized consistently, so fields have room, names and email addresses are no longer cut off, and longer forms need less scrolling.

Quick questions stay small, everyday forms get more room, and long forms, editors and lists open wider. On a phone, every popup now fills the screen with a small margin on each side and scrolls inside itself, so its buttons are always within reach.

Yes or No questions can now be answered No

Yes or No questions on your public forms now show two choices, Yes and No, instead of a single checkbox.

Before, a required Yes or No question could only be answered by ticking the box, so someone whose honest answer was No could not submit the form. Now required means they picked one of the two, and No is saved as No. On optional questions, you can now tell a No apart from a question someone skipped.

This applies everywhere your forms appear, including family member details, forms embedded on your website, and printed forms, and the Yes and No labels show in the form's language.

The free trial is now 14 days

New free trials of HumanixOS now last 14 days. You still get full access to every feature during the trial, and there is still no credit card required to start.

  • Already on a trial? Nothing changes for you. If your organization started its free trial before this change, you keep the 30 or 60 days you signed up for. Your countdown, your billing page and our reminder emails all show your own trial's length.
  • No more inactivity cutoff. A trial used to end early if no one on your team used HumanixOS for 10 days. That rule is gone for every trial, including ones already running: your trial now lasts its full length, however often you log in.
  • Reminders that fit the shorter trial. On a 14-day trial we remind you one week before it ends, the day before, and when it ends. You won't get a reminder on the day you start.
  • Subscribing early still costs nothing extra. If you choose a plan during your trial, your first charge still waits until your own trial is over, unless you choose to start billing right away.

Choose who can see a new service while you create it

If some of your roles only see the services you pick for them, a new service used to stay hidden from those roles until someone remembered to add it to each role's list in Roles and permissions.

Owners and super admins now get a "Who can see this service" section on the New service page. It lists the roles that are limited to chosen services; tick the ones that should see this service (or use Select all), and they will see it as soon as it is created. Roles that are not limited, owners and super admins always see every service, as before. The role's list in Roles and permissions shows the new service too.

Adding donors and recording gifts, on their own pages

Adding a donor and recording a gift now each open a full page instead of a pop-up window, with room for everything you need to enter.

Record a gift for someone new, all in one place. If the giver isn't in HumanixOS yet, choose Add new and fill them in right on the page: a person, an organization, or a household with all of its members. Save them, and they're chosen as the giver while the gift you started stays filled in.

Work through a stack of gifts faster. Save and add another records the gift and keeps the same giver and date ready for the next one. Recording a gift from a donor's page or a household's page starts with that giver already chosen, and takes you back there when you're done.

Amounts read as money. The amount box now starts empty and shows a dollar sign, so typing 500 gives you $500.00 instead of 0500. You can also enter cents, like 25.50.

Room for names when adding household members. Each member's name now has enough room to read, and a long name wraps onto a second line instead of being cut off.

Delete a donor added by mistake. If you created a donor by accident and already recorded a gift for them, you can now delete the donor and that gift together. HumanixOS shows exactly how many donations and pledges will go and asks you to confirm. Donors with a recurring gift still can't be deleted, because the gift may be tied to a card or PayPal subscription. To keep a donor's history, set their status to Lapsed or Deceased instead.

Duplicate an event

You can now make a new event from one you already have. Choose Duplicate on an event's page, or the copy button next to any event in the list.

The new event opens ready to check: the description, place, capacity, settings, time slots and tags are already filled in. If the original has already happened, the copy moves to the same day and time next week (or the first week still to come), so you only need to adjust what changed.

Its questions, reminders and registration, check-in and survey forms come along too, and you can untick any of them. Copied forms start as drafts, so nothing goes live until you review and publish them. Registrations, check-ins and attendance are never copied.

Also fixed:

  • Deleting an event that has a survey form no longer fails.
  • Creating an event from a template now keeps the extra time slots, repeat schedule, tags and guest settings you choose.

Moving questions in the form builder is easier and more precise

Dragging questions around the form builder now does what you aim for.

  • A line shows exactly where the question will land while you drag: across the form for a row of its own, or upright beside another question when you place two side by side.
  • Nothing jumps while you drag. The questions stay where they are, so the spot under your pointer is the spot you drop on.
  • Side by side is easy: drag a question across onto the left or right side of another one. Dragging straight up or down always puts it above or below, wherever you grabbed it.
  • Long forms scroll for you. Hold a question near the top or bottom of the form and the form scrolls, so you can carry a question from the bottom to the top in one go.
  • Clicking a question selects it, even if your hand moves a little.
  • You can move questions with the keyboard: focus a question's handle and use the arrow keys. Up and Down move it a row, Left and Right move it along its row, and Shift with Up or Down puts it beside the questions above or below.

A simpler email campaign editor that saves as you go

Creating an email campaign now takes three clear steps: Details (name, subject line and who it is from), Design (the email itself), and Recipients, where you choose who gets it and send or schedule it. You can move between the steps at any time.

Your work now saves itself as you go. If you get pulled away or close the tab, your campaign is waiting in your list as a draft. A draft no longer needs a subject line or any content before it can be saved, and Save draft keeps you in the editor.

The email designer now shows your email exactly as recipients will see it: headings, buttons and social icons look the same while you design as they do in the inbox. Clicking a block adds it next to what you have selected (or into the column you clicked), and a line shows where a dragged block will land. Social media icons in sent emails now sit side by side in a row, as they do in the designer, instead of stacking.

Your campaigns are now listed in a table you can sort by any column, including open and click rates, and filter by status and date. Every campaign is listed, not just your most recent ones.

New in the designer: Undo and Redo buttons (or Ctrl+Z / Cmd+Z), a background color for the whole email, your brand colors and a palette of ready colors in every color picker, a logo position and link color for headers, larger or rounded social icons, and card borders around columns. Social icons in sent emails now open your own page instead of a "share" box.

The preview now shows everything your readers will see at the bottom of the email, including the unsubscribe link. If your footer has no unsubscribe link, one is always added for you.

Agreement checkboxes on forms

You can now add an agreement checkbox to any form: one box that people must tick before they can send the form, next to your own wording. Use it for agreeing to your terms, a privacy notice, photo permission or anything else you need a clear yes to.

  • Your words. Write the agreement text yourself in the form builder, with bold, italics and paragraphs if you need them. It is translated along with the rest of the form.
  • It cannot be skipped. The form will not send until the box is ticked.
  • A record you can point to. Each response shows what the person agreed to, the exact text (in the language they read it) and when it was received.

An agreement checkbox only records the agreement. It does not give permission to text or email someone. That is what the question formerly called Consent Capture does, now named Texting & Email Permission so the two are easier to tell apart.

Send ledger entries to QuickBooks

If your organization keeps its books in QuickBooks Online, income and expenses recorded in the ledger can now go there on their own, so nobody has to type them twice.

An administrator turns it on in Settings > Connected apps > QuickBooks, chooses the account expenses are paid from and the account income is deposited to, and picks which QuickBooks account each ledger category posts to. From then on, each new expense appears in QuickBooks as an Expense and each income entry as a Deposit, usually within a minute, with any receipt attached. Entries linked to a grant that has one QuickBooks class carry that class.

Each payee is matched to the QuickBooks vendor of the same name, or added as a new vendor, so expenses show who they were paid to. The ledger also has a Due date column: an expense with a payee and a due date is sent as a Bill, owed to that vendor, instead of an Expense. You can choose the Accounts Payable account Bills post to.

Changing an entry updates it in QuickBooks, and deleting one voids it there. Removing a receipt from an entry removes it from QuickBooks too. The ledger shows whether each entry has reached QuickBooks; if one could not be sent, it says why and offers Retry.

Nothing is sent until it is turned on, and donations shown in the ledger and imported entries stay out of it. Entries recorded before it was turned on are sent only if an administrator chooses Send earlier entries and picks a starting date; they see how many entries, and for how much, before anything is sent, and no entry is ever sent twice.

Online gifts find the person who gave

When someone who is already in your People list gives through your online donation page, their donor record is now linked to their person record automatically. You no longer need to find the donor and link them by hand.

  • Matched by email. The link is made only when exactly one person in your organization has the email the gift came from. Names are not used, because anyone can type any name into a public form.
  • Never a guess. If two people share that email, or nobody has it, the donor is left unlinked for you to decide.
  • Existing donors too. A donor who was not linked yet is linked on their next online gift. A donor you already linked is never changed.

Pictures in automatic text reminders and follow-ups

Automatic texts can now carry a picture too. In Settings, under Automated messages, open a text message template for an event reminder or a form follow-up and attach a picture: a flyer, a map, a reminder of what to bring. Every text sent from that template includes it.

The same rules as other picture texts apply: JPEG, PNG and GIF pictures up to 1 MB, a picture text counts as 3 texts from your monthly allowance, and it only goes to people who agreed to receive texts.

Pictures you attached but never sent are now removed after a week.

Repeating events keep their tags

You no longer have to tag a weekly program one occurrence at a time.

  • Event templates have tags. Open a template and choose "Edit tags" under "Tags for new events". Every event you create from the template starts with those tags, and so does every new occurrence its schedules add. Events that already exist keep their own tags.
  • Repeating events. When you create an event that repeats and give it tags, every occurrence in the series gets the same tags.
  • Creating from a template. The template's tags are already chosen on the new event, and you can remove any you don't want before saving.

See where your texting registration stands

While your text messaging registration is under review, Settings > Text messaging now says "Registration pending with carriers" and shows which step it is on: the review by our texting provider, the review by the mobile carriers, or T-Mobile finishing its registration, which is often the slowest. Your plan now starts only once every carrier has finished, so you are not billed while T-Mobile is still catching up.

If a carrier registration ever stops being active, the page says so and texting is paused, instead of messages quietly going nowhere.

Changes show up without refreshing the page

Many screens kept showing what was there before until you refreshed the page. They now update on their own:

  • Form translations. After you publish or update a form, its page and the form editor show "Translating" and then clear it once the translations are ready. The language menu on the public form gains the new languages without a reload.
  • Gifts and donors. Recording, editing, voiding or deleting a gift now updates the donor's totals, the donor page, the summary tiles, campaign totals and the person's and household's giving.
  • Events. Checking someone in with the QR scanner updates the event's attendee list straight away, and attendee changes now appear on the calendar too.
  • Email and text campaigns. A campaign's status moves from Scheduled to Sending to Sent while you watch. A text you send from a person's activity list appears there right away.
  • Imports. The import list updates when an import finishes, even if you closed the import window first.
  • Grants, volunteers and inventory. Grant totals and the burn-rate card, volunteer assignment counts and the stock value now update after a change.

Volunteers can choose their language

Volunteers can now choose English, Français or Español from any volunteer page, including the application form, the status page, account setup and the volunteer portal itself. Look for the globe at the top of the page.

  • It follows them. A volunteer who is signed in keeps their choice on every device. Someone who has not applied yet keeps it on the browser they used.
  • Emails match. The emails about an application (received, approved, account setup and not accepted) now arrive in the language the person applied in.
  • Messages too. Error messages in the volunteer portal now appear in the chosen language.

Anything your organization wrote, such as application questions and shift names, still appears exactly as you wrote it.

We ask before your unsaved changes are lost

Typed something and then clicked away? HumanixOS now stops and asks first.

  • Forms on their own page (grants, households, events, email campaigns, templates and lists, inventory receiving, purchase orders and distributions, board meetings and motions, and more) ask "Leave without saving?" when you click a link, press the browser's back button, press Cancel, or close the tab with changes you haven't saved.
  • Pop-up forms (adding a gift or donor, editing a person's profile, logging volunteer hours, scheduling a shift, adding a webhook, and many others) ask "Discard changes?" when you press Escape, click outside the window, or press Cancel, instead of quietly throwing away what you typed.

Saving still takes you straight on, with no extra question.

Imports keep whole addresses, name their own SKUs and grow a field's options

A few things the import preview used to make you do by hand, or quietly got wrong, are handled for you now.

  • A single Address column is split from the start. Street, city, state and ZIP come out of it without you flipping a switch. If you turn the split off, the screen now says plainly that the address will be left out, instead of promising a split that never happened.
  • Three-word names tell you how they were split. "Mary Ann Fisher" lands as first name Mary, last name Ann Fisher, with a note saying exactly that so you can fix it if the file meant otherwise.
  • A value that can't be read only holds up the record it belongs to. If a donor already in your records has an address the import can't split, and you aren't updating matched records, the gift on that row is imported and the address is simply noted as left out. Rows are no longer held for a value that was never going to be written.
  • Inventory files without a SKU column import. Each item gets a SKU made from its name (RICE-5LB-BAG, then -2 when taken), and the mapping screen says so. When the file has no Item Type column either, you pick one type for every row from your own list.
  • Every row that needs attention says why. A stock line with a blank item name now reads "Item Name is required" instead of an empty details cell.
  • Donated stock with a Donor Type column no longer invents a nameless donor. The giver named in Donor Name becomes the organization donor the receipt is recorded against, once.
  • Add new dropdown values in one step. When a column holds values that aren't among a field's options (a Referral Source of "Community Center", say), the mapping screen offers to add them to the field. Choose it once and every row with those values imports.

Import Stripe and PayPal payments, household exports, schedules and more

Another round of real-world exports now imports the way you would expect.

  • Stripe and PayPal exports become gifts. Each charge or payment is a gift with its giver (by name and email), its date, amount, status and reference. Fees, refunds, conversions, disputes and the processors' own ids are set aside with a note. A payment that failed asks whether to skip it or keep it with that status; a row in another currency is pointed out rather than converted.
  • Household exports with a second person. "Primary" and "Secondary" first name, last name and email columns make two people from one row, sharing the household's address. Households themselves are not imported yet, and the import says so beside the Household Name column.
  • Schedules with a duration. A start column in ISO format ("Start (UTC)") and a "Duration (min)" column become the event's start and end; a room becomes the location, and Confirmed or Cancelled becomes the event's status.
  • Budget and bank exports. Outflow / Inflow or Withdrawals / Deposits columns become one amount (an outflow is an expense, an inflow an income), the Date is the transaction date, and an instruction block under the data is skipped as notes.
  • Services directories (211 / HSDS files) import as services, never as people. Salesforce Accounts reports import as organizations, and the report footer is skipped.
  • Fewer wrong guesses on gift sheets. "Purpose" is the gift's note, "GL code" matches the gift's fund by its code, "Donor Email" is the giver's email, and "Hide my name" marks the gift anonymous. On a people sheet, Tags and Notes columns are set aside with a note instead of being asked about one by one; Shopify and Google Contacts exports map their columns by name.
  • A file with headers and no rows stops on the upload step, naming the columns it found, instead of opening an empty mapping screen.

Imports read more of the files other systems export

The importer now handles shapes that real exports keep arriving in, so fewer columns come back as "please confirm" and fewer rows need attention.

  • Two columns can be one value. A date column next to a time column ("Event Start Date" + "Event Start Time") becomes one start time. A ledger's debit and credit columns become one amount: a debit is an expense, a credit an income, and a row with both or neither is pointed out. An HMIS service log's RecordType and TypeProvided codes become the service's name ("Bed night", "PATH service: Case management"). The mapping screen says what was combined and lets you separate the columns again.
  • A title above the headers is noticed. When the first row is a title and the real headers sit below it, the import says so and offers "Use row 2 as the header" with one click.
  • Workbooks open on the sheet that holds the table, not on a first sheet of notes, and you can still pick another sheet.
  • Excel templates (.xltx) and macro workbooks (.xlsm) upload directly. A file type the importer cannot read is now said on screen, naming the type and the ones it accepts, instead of nothing happening.
  • An employer column stays an employer. A Company column next to people makes organization records for those employers, and a Website column beside it belongs to the employer, instead of the import asking for an organization name on every row.
  • Fewer wrong guesses. A "region" column of North and West is no longer a state, a Yes/No "Do not contact" column no longer turns a call list into donors, a supplier column no longer drags a ledger into an inventory file, and a person known only by an ID is matched to your existing record or flagged, never created empty. Grant trackers map their amount, status and report due date; gift channels like Web, Social and Direct Mail are recognised; two SKUs that differ only by case are one item.

Imports read gift sheets better and keep the preview tidy

A few more things the importer now gets right, found while importing real exports.

  • A gift sheet's check number stays a gift detail. A "Check / Reference No." column no longer turns a sheet of gifts into a ledger and ask for a transaction date it never had: it is the gift's reference, or left out with a note when a Gift ID column already holds one. A gift category beside a gift type, a deposit date, an acknowledgment template and the event a gift came from are left out with a note instead of being asked about.
  • Two gifts on one row. A sheet that repeats "Gift Amount" and "Gift Date" for a second gift (as Little Green Light's does) makes two gifts for that row, both to the same giver, fund and campaign.
  • A giver named only by their id. When a gift row carries just the constituent id of someone you already have, the gift goes to that person's donor record, which is made for them once if it does not exist yet.
  • An organization named in the employer column with a constituent type of Organization is read as that organization, not as a person without a name.
  • A notes block at the bottom of a sheet is skipped whole, even when blank lines separate its paragraphs.
  • Notes columns on a people sheet now say plainly that notes are not imported for people, with "Create a field…" as the way to keep them.
  • The preview shows combined values. When columns are read together (several yes/no columns as one field, a date and a time, a debit and a credit, a sign-in and a sign-out), the preview shows one column with the value the import will store, where the first of those columns was.
  • Cancelled imports no longer clutter "Drafts and recent imports". They are hidden until you choose "Show cancelled", and can be deleted from there.
  • Workbooks open on a sheet with data. A workbook whose first sheet holds a single row under a title no longer wins over the sheets that hold the real table.
  • An item type your organization does not have can be fixed from your own list of item types right in the preview.

Imports: sign-in logs, refunds, and more file shapes

Importing keeps learning the files other systems hand you.

  • Sign-in logs become service records with hours. A kiosk or paper log with a name, a program, a shift date and in / out times is read as one service record per line, with the hours worked landing in your service's Hours field (an overnight shift that ends the next morning is counted right). "Young, Kevin" in a column of "First Last" names is read as Kevin Young, and a name that is only an initial waits for you to say who it is.
  • Refunds and chargebacks are never imported as gifts. A negative or parenthesised amount asks you per row: skip it, or record it as a negative adjustment against the donor's giving. "Posted" and "Succeeded" statuses are read as completed.
  • Tab-separated files are accepted (.tsv and tab-delimited .txt), and a CSV with a space after each comma before the quotes now reads its headers cleanly.
  • Reports and dashboards find their header row. A QuickBooks report's title block, a class roster's title and instructor rows, or a dashboard sheet whose table starts in column B on row 9: the importer proposes the right line, drops the empty margin, ignores the summary block under the data and no longer counts a sheet's unused rows as blank rows. A workbook whose other sheets share the same columns says so.
  • More columns are left out with a reason instead of a guess: donor-level totals (lifetime giving, largest gift), a ticketing export's order and ticket columns, Mailchimp's subscription and geo-IP columns, row counters, an appeal beside a campaign, a unit of measure, and an SSN column when your organization does not import SSNs. A date written in epoch seconds or an "Order #" column is never mistaken for a phone number.
  • HUD HMIS Client.csv is read with HUD's code lists: gender codes, the race columns as one ethnicity field, data-quality and system columns left out.
  • More headers are understood: Google Forms ("Your name", "Email address"), Spanish and French phone columns (teléfono fijo / móvil, téléphone fixe / portable), "User Id", CiviCRM's "Financial Type", QuickBooks' "Num" and "Account Description", Smartsheet's grant-pipeline columns, and The Events Calendar's category and tags columns together.

Link an existing form to a service

A form that only adds people can now be linked to a service after it was created, even once it is published. Open the form, go to Options, choose the service under Link to a service, and add that service's fields from the Fields panel. After you save, every new submission also records the service. Submissions you had already received stay as they were and do not record the service, even if you approve them later.

Changed your mind? You can unlink the form from the service until it receives its first submission after the link.

Send pictures in your texts

You can now add a picture to a text: a flyer, an event poster or a distribution notice.

  • Attach a picture when you text someone, in a text template, or in a campaign. JPEG, PNG and GIF pictures up to 1 MB work. You see the picture before you send it, and a picture that is too large or of another kind is refused with a message saying why.
  • Templates carry their picture. Pick a template with a picture and the picture comes with it, in a one-off text or a campaign.
  • Pictures people send you show up in the person's activity history and in your message log.
  • A picture text counts as 3 texts from your monthly allowance, whatever its words. A picture someone sends you counts as 3 replies, and replies are still free up to twice your allowance. A campaign's review step shows how many it will use before you start it.

Pictures are private to your organization: links to them stop working after a minute in the app.

Deleting a form now protects its submissions

Deleting a form also deletes everything people submitted through it, so HumanixOS is now more careful about it.

  • You see exactly what will be lost. When a form has submissions, the delete window tells you how many and asks you to tick a box before anything is deleted. If new submissions arrive while the window is open, nothing is deleted and you are shown the new number.
  • Deactivate instead. For a live form with submissions, the delete window offers to deactivate the form. It stops taking new submissions and keeps every one you already have.
  • Every deleted form shows up in the Activity log, with its name and how many submissions went with it, including forms removed because their event or time slot was deleted.
  • Deleting an event now says up front that its registration and check-in forms, and what was submitted through them, are deleted too.

Texting setup fills in your organization's details

Setting up text messaging now starts with your organization's details already filled in: your EIN, legal name, address, website, and contact email and phone. Your legal name comes from your IRS record when your EIN has been verified.

Your address is now on the setup screen itself, so you no longer have to leave setup to complete your organization profile. You can change any of these details before you submit, and anything missing or mistyped is pointed out on the field before you go on. Owners and admins also get the EIN and address they confirm saved to the organization profile.

Week of September 28, 202667 updates

Imports: the right line numbers, a fix for files without headers, and tidier genders

Three things people kept running into while importing a spreadsheet are fixed.

  • Line numbers match your file. When a spreadsheet had an empty row in the middle, every row after it was shown one line off in the preview and in the list of rows that failed. The preview, the row details and the downloaded failures now use the same line numbers Excel shows, so a row is where we say it is.
  • A file that starts with data, not headers, can be fixed. If the first row of your file is a person rather than column names, we now say so right after the upload and let you choose: treat the first row as data (columns are numbered, and email, phone, date and ZIP columns are still recognised from their values), or name the row that holds the headers. The same choice is available from the mapping screen at any time.
  • Genders are stored the way the app spells them. "F", "Fem", "female", "MALE" and "m" now import as Female and Male instead of nine different spellings. A value we cannot place, like a typo, is flagged for you to decide, or left blank if you have chosen that option.
  • Weak guesses are suggestions, not choices. When we are not sure which field a column belongs to, it now shows as "Not mapped" with our best guess beside it; one click takes it. Before, a weak guess was pre-filled and easy to miss. "Yr" and "Year Born" are also recognised as the birth year now.

People with a role limited to certain services now see only those services

If you limit a role to specific services, people on that role used to see every service on the Services page and in service pickers, and opening one they were not given led to a page that kept trying to load and never did.

  • The Services page and every service picker now list only the services the person's role can work with. Owners and administrators with full access see everything, as before.
  • Opening a service you cannot reach shows a clear "not found" message once, instead of a loading error that retries on its own.
  • Setting up a role's service access still shows the full list of services, so you can grant any of them.

Split a volunteer shift into activities

A volunteer shift can now list the jobs that need doing, each with its own number of spots. A Saturday food distribution that needs 8 volunteers can say 2 at check-in, 4 packing boxes and 2 loading cars.

  • Volunteers choose what they'd like to do when they sign up, or pick "Wherever needed" and we place them where help is needed most.
  • The roster is grouped by activity, so you can see at a glance which job is short. Move someone to another activity in two clicks.
  • Weekly shifts keep their activities: every new shift gets the same list, and you can change it for one shift or for all of them.
  • Background checks: record on a volunteer's page that their background check is done. An activity marked "Needs a background check" only accepts volunteers whose check is done.
  • Emails and reminders tell each volunteer which activity they're doing.

Shifts without activities work exactly as before.

Collect volunteer documents and background checks in one place

Volunteers' paperwork now lives on their record in HumanixOS instead of in a drawer or an inbox.

  • Volunteers upload from their phone. Under My documents in the volunteer portal they can hand in a background check, a food handler card, CPR or anything else you ask for. A clear photo or a PDF is fine.
  • Ask for what you need. On a volunteer's page, choose Request and they get an email and see the request when they sign in. It closes on its own once you accept the document.
  • Review in one click. Open a document, then accept it or say why you can't. Accepting a background check marks the volunteer's check as done with the right dates, so they can sign up for shifts and activities that need one.
  • Upload for a volunteer. Got a paper form? Upload it yourself and accept it in the same step.
  • List the certificates you ask for in Volunteers, Settings, and mark the ones that expire.

Documents are private: only people who can see background checks (admins, unless you give others access) and the volunteer who uploaded them can open them, and every link stops working after a few minutes.

Easier to read in dark mode, clearer keyboard focus

In dark mode, highlighted text and selected items are now easy to read. Selected rows when linking people, active filter chips, the fields you've added in the form builder, import step names, trend figures on the funding partner dashboard and your initials in the top bar used a dark purple that almost disappeared on the dark background. They now use a lighter purple. Buttons look the same as before.

When you move around with the keyboard, the outline that shows where you are is now solid and easy to see in both light and dark mode.

Automatic thank-you emails for every gift

Every donor can now get a thank-you email as soon as you record their gift, worded the way you want for each campaign.

Write your thank-you once. In Email > Automations, start from the Gift Thank-You template. Its email can show the donor's name, the amount, the date, the fund, the campaign, the payment method and a tax receipt line with your EIN. Switch it on when it reads the way you want.

Choose where it is used. On Donors > Campaigns, pick a default thank-you email for every gift, and give a campaign its own thank-you, such as a capital campaign. A gift uses its campaign's thank-you first, then your default.

Sent once per gift. Each gift is thanked once, and the gift is marked as acknowledged with the date. A donor who gives again gets a new thank-you for the new gift. Donors who opted out of email or unsubscribed are never emailed, and imported gifts are never thanked.

Your call, gift by gift. When you record a gift, a Send thank-you email box shows whether this gift will be thanked. It is on when a thank-you email applies and the donor can receive it. Turn it off for a gift you already thanked in person, a correction or a batch from a paper ledger, and no email goes out. When the donor has no email address, opted out or unsubscribed, or no thank-you email is set up, the box is off and says why. A donor's giving history shows each gift's thank-you: thanked on a date, queued, won't be thanked, or not thanked. To thank a gift later, open it and choose Send thank-you now.

Online gifts already get an email receipt, so they don't get the thank-you unless you turn on Also send the thank-you for online gifts on the Campaigns page.

Editing a cell replaces its value, and renamed columns fit their name

Two fixes to the grids where you edit people, services and other records.

  • Editing a cell selects what is there. When you open a cell to edit it (double-click, Enter or F2), the whole existing value is now selected, so what you type replaces it, the way a spreadsheet works. Before, your typing was added in front of the old value, and a cell could save as two names run together. Ctrl+A (Cmd+A on a Mac) inside an open cell selects the cell's text. Typing straight onto a selected cell still replaces its value, as before.
  • Renamed columns fit their new name. When you rename a column, its width is sized for the new name: a longer name is no longer cut off, and a shorter one no longer leaves empty space.

Email lists: pick several values in one rule

When you build an email list, a rule on a field with set choices (a dropdown, a multi-select, a program, a household or an organization) now lets you tick several values at once. Choose Is any of to include people who match at least one of them, or Is none of to leave them out.

You can now filter email lists by program, household and organization, so a list like "people in the food pantry or tutoring program" takes one rule instead of several.

Lists you already saved keep working. A rule with one value opens with that value ticked, and the number of matching people is the same number your email goes to.

Every event on the Events page, and safer form editing

A few fixes you may have run into:

  • All your events. The Events page used to stop at the first 100 events. It now loads more as you scroll, with a "Load more" button that shows how many of your events are on screen. Filtering by Upcoming, In progress, Completed or Cancelled now counts and lists every matching event.
  • Leaving the form builder. If you click "Back to forms" (or any other link) with changes you haven't saved, you're now asked before they're lost.
  • Amounts in your language. Gift amounts on the donations list, a donor's gift history, campaign progress and the void dialog now use the number format of the language you've chosen, instead of always the US format.

Grant edits never overwrite each other

When two people work on the same grant at once, the second save no longer replaces the first one silently.

  • Editing a grant. If a teammate saved the grant after you opened it, your save is held and you see "This record was modified by another user" with a Refresh button, so you can see their changes before saving yours.
  • Moving a grant on the pipeline board. Dragging a grant to a new stage on a board that is behind a teammate's change puts the card back and offers to refresh, instead of undoing their stage.
  • Restoring an archived grant gets the same protection.

Find households by the details you record on them

Searching households now also looks at the household's own fields. If you record a case number, a zone, a program or a language on your households, type it into the search box on the Households page, or into any household picker, and the matching households appear.

  • Choice fields match by the option name you see, so searching "At risk" finds households with that option picked.
  • Numbers and dates match when you type the exact value, and a date can be typed the way you usually write it (for example 01/05/2026).
  • Search still finds households by their name and by the names of the people in them.

Household members appear as soon as you add them

Adding people to a household now shows them on the household's page right away, with no page refresh needed. This applies however you add them: from the household's edit form, from the People table's "Add to household" action, or from a person's own record. Removing someone from a household, changing their role, and moving the head of household update the page the same way.

The Households list, its people and on-file counts, the household pickers, and the Household card on each person's record all refresh together, so the numbers you see match what you just did.

Import history you can read at a glance

The import history on the Imports page was getting cramped. Column headers like "Uploaded by" broke onto two lines, and the row counts for each import ("247 / 240 / 5 / 2") wrapped so the slash sat on one line and the number on the next, which made the figures hard to read, especially with a long filename and several action buttons in the row.

The table now gives each count its own column: Total, Imported, Errors and Skipped, right-aligned so the numbers line up, with the same green, red and amber colours as before. Headers and counts stay on one line at any width. Numbers are written the way your language writes them (12,345 or 12 345). Long filenames are shortened, and hovering over one shows the full name. On a laptop screen the whole table now fits inside its card: the filename gives up room first, and when a row has several buttons they move onto a second line instead of pushing the table sideways. The "Drafts and recent imports" list above it keeps its headings, dates and statuses on one line too.

Organizations with hundreds of linked people load again

An organization's page now lists, searches and sorts all of its linked people, however many there are. Before, an organization linked to more than about two hundred people showed an error instead of its people list, and very large ones could leave people out.

Linking a large selection of people to an organization in one go works the same way.

Every person and family now shows on large service pages

On a service that serves people, families and organizations together, scrolling down the service page could skip some records once a service had more than 100 of more than one kind. Scrolling to the end now shows every record exactly once, and the count at the top matches what you see.

Service pages stay current without a reload

A service page now shows the effect of your changes as soon as you make them, instead of after you reload the page.

  • Organizations in the grid. The Organizations column on a service now lists each person's organizations, and linking or unlinking one from that cell shows straight away.
  • Deleting a field. When you delete a field that held values and later add a field with the same name, the new column starts empty instead of showing the deleted values.
  • Deleting entries. Removing a family's entry updates the family count and the family columns at once.
  • Working in two tabs. When you come back to a service page after working elsewhere, it picks up changes made in your other tabs or by teammates: entries, the service's name and status, and whether it has linked events.

A new importer that maps your file for you and shows every row before it saves

Importing a spreadsheet used to mean mapping every column by hand, waiting, and sometimes finding out at the end that a few rows had failed. The importer has been rebuilt from the ground up.

It maps your columns for you. Upload a file and most columns are matched to the right fields automatically, including the column names that Little Green Light, Bloomerang, DonorPerfect, Salesforce and other systems use. Only the columns it is unsure about ask you to confirm. Import the same kind of file again and it remembers your mapping.

It understands rows, not just columns. A sheet with a person, a donor and a gift on each row now creates each giver once, attaches every one of their gifts, and links the donor to the person. You no longer need a separate "Donor" column to make gifts find their donor.

You see exactly what will happen before anything is saved. Every row shows whether it will be created, matched to an existing record, updated, or skipped, and why. Fix a cell, skip a row, change a mapping or answer a question right there in the preview. You never have to edit the spreadsheet and start over.

Addresses in one column split into street, city, state and ZIP, the same way a full name splits into first and last.

Imports finish on their own. Once you confirm the summary, the import runs in the background. You can close the tab and come back to the result, and undo an import from the Imports page as before.

Nothing from your spreadsheet is sent to an AI service. Column matching and cleaning are done entirely by HumanixOS.

Add a new donor while recording a gift

Choosing who gave is simpler. Above the search in the Record Donation form, pick Individual, Household or Organization, and the search looks only at that kind of giver. The form remembers the last kind you used.

When the giver is not in HumanixOS yet, you no longer have to leave the form. The first line under the search is always Add new: type a name and choose it, and the right form opens on top with the name already filled in. Save it, and you are back on your gift with the new giver selected, the amount, date and everything else you had entered still in place, and the cursor ready in the next field to fill.

If nothing matches in the kind you chose, Search all types looks for the same name among individuals, households and organizations at once.

Add Donor on the Donors page now offers the same three kinds: Individual, Household and Organization. For a household, choose an existing household or create a new one, and the donor takes the household's name. A household only ever has one donor record: if the one you pick already has a donor, you are told and taken to it instead of a duplicate being created.

Government is no longer offered as a donor type; record a government agency as an organization. Donors already marked Government keep their type and show it as before.

Adding a new giver appears for team members who are allowed to add donors (or households).

Approved volunteers are ready right away

When you approve a volunteer application, that person is now on your volunteer list straight away. You can put them on a shift the same day, and their hours count from the start. They no longer have to open an email and create an account first.

They still get a welcome email with a link to set up a login for the volunteer portal, where they can see their shifts and log hours. That part is up to them. On your volunteer list, anyone who hasn't signed in yet is marked Hasn't signed in yet, with a button to send them a fresh link.

If you put someone who hasn't signed in on a shift, they're booked right away and get a confirmation email asking them to let you know if they can't make it.

If the person already has a login (for example, they volunteer with another organization), your organization simply appears in their volunteer portal.

Volunteers you invite by email work the same as before: they join once they set up their account.

Change one shift or the whole weekly schedule

When you edit a volunteer shift that repeats every week, HumanixOS now asks what the change is for, the way a calendar does:

  • Only this shift, for example to move one Saturday around a holiday. That shift keeps your change from then on.
  • This and following shifts, for example when the pantry starts at 10 instead of 9 from next week.
  • All shifts in the schedule.

Each choice shows how many upcoming shifts it will change. Shifts that have already happened never change, so your hours and attendance stay as they were.

Cancelling a repeating shift asks the same question, so you can cancel one shift, end the schedule from a date on, or end it completely.

Volunteers on a shift whose time or place changes now get an email with the new details, and their reminders show the new time.

Donor figures take less room, and pending gifts show beside them

The figures at the top of the Donors page now sit in one compact panel instead of two rows of large cards, so your donor list starts much higher on the screen.

  • All the same figures are still there: Raised (YTD), Total Donors, Avg Gift and Active Recurring, plus the Unrestricted, Temporarily Restricted, Permanently Restricted and Undesignated totals in their usual colors.
  • Click Giving summary to collapse the panel. Collapsed, it still shows Raised (YTD) and Total Donors on one line.
  • Your browser remembers whether you left it open or collapsed.

Pending gifts are no longer hidden. Giving totals count completed gifts only, so they match your books, but nothing used to say so: a donor with six gifts in their history could show a gift count of 2. Now:

  • A donor's page shows pending gifts under Lifetime Giving and Gift Count, for example "+ $6,440 pending (3 gifts)", and both cards say "Completed gifts".
  • The donors panel has a Pending figure, with a line saying the totals count completed gifts.
  • The donor list and a household's Giving card show pending gifts the same way.
  • Failed, refunded, cancelled and voided gifts are not counted anywhere. A pledge payment that hasn't come in yet stays with its pledge rather than showing as pending.

Tag your events and forms

Events and forms can now carry tags, the same way services and organizations already do. Group events by whatever matters to your team ("Fundraiser", "Youth", "Spring 2026") and forms the same way ("Intake", "Volunteer", "Spanish").

  • Event types are now tags. Creating an event no longer starts by asking what kind of event it is: it opens straight on the details, where you can pick tags (or create a new one) alongside the title. The types your events already had (such as Program or Fundraising) become tags of the same name, so nothing you sorted before is lost.
  • Tag an event while creating or editing it, from the events list or from the event's own page, and a form from the forms list, its page or the form editor. Each can carry several tags.
  • Tags show on the events and forms lists, so the groups are visible at a glance.
  • Filter either list by tag. Pick several and choose whether to see items with any of those tags or only those carrying all of them.
  • Rename or recolour a tag once in Manage tags and everything carrying it follows. Deleting a tag removes it everywhere and leaves the events and forms exactly as they were.
  • Anyone who can view events or forms sees their tags; changing them takes permission to edit.

Flexible volunteer shifts: let people choose their time

Running a drop-in afternoon? A volunteer shift can now be a flexible window. Say the pantry needs help from 12 to 6: volunteers pick the part they can do, like 1 to 3, instead of you creating three small shifts or counting everyone for six hours.

  • When you create a shift, choose Fixed time (everyone works the whole shift, as before) or Flexible. You can set a minimum time per person, like 1 hour.
  • Volunteers choose their time when they sign up in the volunteer portal, and can see where help is still needed. They can change their time later, up to your cancellation cutoff.
  • When you assign someone, pick their time too. The roster shows each person's time and a simple bar of who is there when.
  • "Volunteers needed" on a flexible shift means how many people you need at the same time.
  • Hours are counted for the time each person chose (or their actual check-in and check-out).
  • Emails and reminders show each volunteer their own time.

Weekly schedules can be flexible too, and if you change the schedule's hours, everyone's time moves with it.

Deleting a fund no longer loses its gifts

You can now delete a fund from the Funds page, but only when nothing is attached to it. A fund that still has gifts, recurring gifts, pledges, ledger entries or grant allocations can't be deleted, and the Delete button tells you what is still attached.

Before, deleting such a fund quietly removed it from every gift that belonged to it, so fund totals and reports lost that money. Now the gifts always stay with their fund. To retire a fund that has history, edit it and turn off Active: it stays in your records and reports but no longer appears when you record new gifts.

Hide any column in your People and service views

You can now hide any column in the People grid, including built-in ones such as Organizations, Services and Household, from the hide icon in its header. The same works on a service's page, including its Event and Attendance columns.

Hidden columns are part of the view. They stay hidden when you come back to the page, and a saved view remembers which columns it hides. To bring a column back, open the new Columns menu in the grid's toolbar and tick it, or choose Show all columns.

A person's name and ID are always shown, so every row can still be recognised and opened.

If you hide a column you were filtering or sorting by, that filter or sort is removed and a short message tells you so, so the list never stays narrowed by something you can no longer see.

To hide a field everywhere, rather than in one view, use the field settings as before.

Make a household a donor from its page

When a family gives together, you can now set that up right from the household's page. The Giving card offers Add as donor, which creates the household's donor record, and Record a gift, which opens the donation form with the household already chosen as the giver.

A household only ever has one donor record, so clicking again, or recording a gift for a household that is already a donor, adds to the same record instead of creating a second one.

Once the household is a donor, its Giving card stays on the page even before the first gift, showing a total of zero until gifts come in. Gifts a household gives together stay on the household's record and are not added to any member's own giving.

These options appear when Donors is turned on for your organization and you are allowed to add donors.

Open a household straight from the People table

Household names in the People table's Household column are now links. Click one to open that household's page; a person who belongs to more than one household shows a link for each. Clicking a household opens it without selecting or opening the person's row.

From the keyboard, move to a Household cell and press Enter to reach its links, Tab between them, Enter to open one, and Escape to return to the table.

Links appear for team members who can view households. Everyone else sees the household names as before.

Setting up items that come in sizes and colors is simpler

When an item comes in versions you count separately, such as sizes or colors, you now describe it the way most shop tools do.

  • On the new item page, tick Comes in variations and add an option, for example Size, then type its values: S, M, L. Add a second option such as Color and every combination appears in a table below, ready to count. Delete any combination you don't carry.
  • Each combination can have its own price, cost and starting quantity. A blank price means "same as the item". Each one also gets its own code, made from the item's code and its values.
  • When you receive stock, you pick the variant from a list instead of typing a size. If a delivery brings a size you have never had, choose Add a new variant and add the value right there.
  • Once an item has stock you can still add values to its options, but options and values that hold stock can't be removed.

We also tidied up existing items: variation fields that were never used (for example a "Count" field) have been removed, and variants that were missing a value now show Not specified. Each change is listed in your activity log.

Volunteers can sign out, and past shifts are easy to find

Volunteer portal. The volunteer portal now shows who is signed in, with a My profile button and a Sign out button at the top of every screen. This matters most on a shared computer at a front desk or library: the next person no longer lands in someone else's portal.

Past shifts. On Volunteers > Scheduling you can now switch between Upcoming and Past. Past shows shifts that have ended, newest first, for the dates you pick (the last 30 days to start). Open any past shift to see who was scheduled and who came. You can still mark someone as a no-show, or clear it, after the fact.

Simpler email forms. Two fields nobody used are gone: the fundraising campaign link when writing an email, and the description when creating an email list. Removing them does not delete anything already saved.

Print or download one volunteer's hours

Need proof of service hours for a student volunteer? You can now produce a report for one volunteer in a couple of clicks.

For staff. On Volunteers > Reports, choose Report for one volunteer, or click a volunteer's name in the table. Pick the dates and you get every time they volunteered: the date, what they did, the scheduled time, when they checked in and out, and the hours, with a total at the bottom. Print it, save it as a PDF, or download it as a spreadsheet. You can add a signature line for schools that ask for one.

For volunteers. In the volunteer portal, under My hours, choose Hours report to make the same report for yourself, for any organization you volunteer with. Approved hours are shown by default, and you can include hours still waiting for approval, clearly marked.

Where nobody checked a volunteer in, the report says so, so whoever reads it knows what the hours are based on.

Put your donation page on your own website, or print it as a QR code

Each donation page now has two new buttons on the Donation pages list.

  • Embed code gives you a short piece of code to paste into your own website. Your donation card then appears right on your site, in your logo and colors, and every gift made through it is recorded in your donor records like any other online gift. When a donor pays, the payment page opens in a new tab.
  • QR code shows a code you can download and print on flyers, signs or event tables. Scanning it with a phone opens your donation page.

We also fixed the thank-you message for card donations: donors who paid by card now see your thank-you page after paying, instead of the donation form again.

Donation pages now use your logo and brand color

Your donation pages now show your organization's logo and brand color automatically, using what you set under Settings, Branding. New pages look like the rest of your organization straight away, and if you update your branding later, every donation page follows.

  • Want one page to look different? Turn off Use your brand color on that page to pick its own color, or upload a logo just for that page.
  • Pages you created earlier with the standard dark blue color now follow your brand too.

Search as soon as you open a picker on the donor form

When adding or editing a donor, opening the search to link a client or an organization record now puts the cursor straight in the search box, so you can start typing a name right away.

  • Typing filters the list as you go, and choosing a person or organization links them without closing the donor form or losing anything you have entered.
  • The same applies to choosing team members when you share a record with your team, and to choosing QuickBooks accounts and classes for a grant.

Print family sheets without personal information

Family sheets are often handed to sponsors, volunteers and partners who only need to know what to buy or deliver. You can now leave personal information off them.

  • When you select Print family sheets, a short dialog now offers Hide personal information. It is off unless you turn it on, so sheets print the same as before.
  • With it on, names, dates of birth, phone numbers, email addresses, addresses and notes are left off. Each family is numbered, and each person is listed as "Member 1", "Member 2" and so on, with their relationship and role in the family, so the sheet is still easy to follow.
  • Client ID numbers and Social Security numbers never appear on a family sheet.

Grant dates stay accurate as grants move through the pipeline

Grant deadlines, reminders, the calendar and stage suggestions all depend on a grant's dates, so we now make sure those dates are filled in and make sense.

  • Dragging a grant on the pipeline board asks for the date it needs. Moving a grant to Proposal Submitted or later asks for the submission date if it doesn't have one, and moving it to Awarded or Rejected asks for the decision date. Enter the date and the grant moves. Cancel and it goes back where it was.
  • Promoting an opportunity asks for the submission date when you place it in a submitted stage. If the deadline has already passed, you'll see a warning, but you can still add it.
  • The grant form tells you right under the field when a date is missing for the stage you picked, or when dates are out of order: a decision before the submission, or an end date before the start date.
  • Grants you already have aren't affected until you change their stage or the date itself, so you can keep editing them as usual.

Find a household by anyone in it

Searching households now finds a family by the name of anyone in it, not just by the household's own name.

  • Type a family member's first or last name, or their full name, into the search on the Households page and their household appears.
  • The head of household counts too, so searching for the person who leads the family finds it.
  • The same works everywhere you pick a household, such as when recording a service or choosing who gave a donation.

Searching by the household's name works just as before.

The Households list now shows every household

Organizations with more than 1,000 households saw only the first 1,000 on the Households page, and the count at the top stopped there too. That is fixed.

  • The list now loads more households as you scroll, with a Load more button at the bottom if you prefer to click.
  • The household count, and the People, On File and Children totals, cover your whole organization, however far you have scrolled.
  • Sorting by a column sorts all of your households, not just the ones already on screen.
  • The household pickers (the People list's Household filter and Add to household) now offer every household too.

Imports never send your data to AI

When you turn on AI Data Cleansing in the import settings, the AI no longer sees any of the values in your file. It is shown only the format of each column, such as "a date written 99/99/9999" or "two capitalised words", along with how many cells are blank. Names, emails, phone numbers, dates of birth and Social Security numbers stay on your side. Social Security number columns are not described to the AI at all.

The AI suggests a format for each column, and HumanixOS makes the changes itself once you accept them. With AI Data Cleansing off, which is the default, imports clean dates, phone numbers, ZIP codes, states and names automatically, without AI, as before.

Imports also no longer keep sample values from your file in their history.

Add a form question exactly where you want it

When building a form, you no longer have to add a question at the bottom and drag it up into place.

  • Hover between any two rows on the form canvas and a + appears. Click it, pick the kind of question, and it's added right there, ready for you to type its wording.
  • There's a + above the first row and below the last one too, and on an empty form an Add a question button gets you started.
  • It works for every kind of question, including section headers and communication preferences.
  • Rows with several fields side by side stay together: the new question gets a row of its own.
  • On a tablet or phone the + buttons are always shown, since there's nothing to hover.

Adding from the panel on the left still puts the question at the end, and dragging fields around works just as before.

Involvement now shows who your donors and volunteers are

The Involvement column marks people who give or volunteer with a locked Donor or Volunteer tag. Until now those tags were missing for most people, because their donor or volunteer record was never connected to them. That is fixed.

  • New donors are connected to the matching person automatically, whether you add them yourself or they give through one of your donation forms. The same goes for volunteers who sign up on their own. A match is made on email first, then on full name, and only when exactly one person fits. When two or more people could be the one, nothing is connected, and the donor form tells you so you can pick the right person.
  • Donors and volunteers you already have are being connected the same way.
  • The Donor and Volunteer tags now appear everywhere the Involvement column does: the People list, the people on a service, the people at an organization, and each person's own page. Filtering the column by Donor or Volunteer works in all of those places too.
  • New organizations start with an empty Involvement field, ready for their own options. We no longer add Board Member, Staff, Alum and Community Partner. Organizations that had them lose the ones nobody uses; any still on someone stay in place and are listed under the People settings so you can tidy them up yourself.

A new form keeps the name you give it

When you renamed a new form straight away, the form builder could sometimes swap your name back to a default such as "Feedback Form 2" a moment later, and the form was published under that default. A name you type is now kept. The builder only adds a number to the default name, to tell it apart from a form you already have, while you haven't renamed it yourself.

PayPal donations now go straight to your PayPal account

When a donor gives with PayPal on your donation page, the gift is now paid directly into your organization's own PayPal account, and it is only recorded in your donor records once PayPal confirms your account received it.

  • Donors see your organization's name and a "Donate" button at PayPal, and are no longer asked for a shipping address.
  • Every PayPal donor now gets your organization's own email receipt, the same one card donors receive.
  • If you connected PayPal before this change, open Settings, then Connected apps, and click Confirm account on the PayPal row. Until you do, your donation page does not show the PayPal button.
  • Monthly gifts are taken by card for now. Monthly giving through PayPal is coming.

Saved email blocks now save

Saving a block in the email builder (the bookmark icon on any block) now keeps it. It appears in the Saved tab straight away and stays there, so you can drag it into any email you write.

Previously the builder said the block was saved, but the Saved tab stayed empty. If saving doesn't work now, you'll see why: for example, if you already have a saved block with that name, you'll be asked to choose another one.

Scan a form straight from a Word document

Scan a form now works with the file your form is already in, so there's no need to export it to PDF first.

  • Word documents (.docx and older .doc files), OpenDocument (.odt), RTF and plain text files are read directly, so labels, tables and checkboxes come through as they are written. This also covers Google Docs downloaded in any of these formats.
  • Spreadsheets laid out as forms (.xlsx, .xls and .csv) work too.
  • iPhone photos in HEIC format are converted on your device and read like any other photo.
  • Photos and PDFs work just as before.

This works both when you build a new form from a blank one and when you read filled-in forms. If you pick a file type that can't be read, you'll see a message listing the types that can. As before, a scan never fills in a Social Security number.

Text messaging is now counted by segment

Your monthly text messaging allowance now counts message segments instead of messages. A text of up to 160 characters is one segment; a longer text counts as two, and so on. The composer shows what a message will count for before you send it, so a long text never comes as a surprise.

Accents and emoji do not change the count. A message in Spanish with accented letters costs the same as the same message in plain letters.

Replies count too, with room to spare: every plan includes twice as many free replies as texts. Beyond that, replies count toward your monthly allowance.

The usage page under Settings > Text messaging now shows segments sent, replies received, and how many of your included replies you have used.

Texting plans start billing only when your registration is approved

Setting up text messaging means registering your organization with the US carriers, which can take a few days to two weeks. Until now the texting plan was charged before that review started, so you paid for weeks you couldn't send.

Now nothing is charged up front. When you choose a plan, Stripe's secure page saves your card and we file your registration. Your plan starts, and its first charge happens, only when the carriers approve your organization and your number is live. You can switch plans or cancel before then at no cost.

Verified 501(c)(3) organizations also get nonprofit pricing on texting: tick "We're a registered 501(c)(3)" when choosing a plan and enter your EIN, and we confirm it with the IRS before filing.

Choose your email plan in Settings

You can now see every email plan side by side in Settings > Email sending and pick one yourself, instead of contacting us.

  • Compare Free, Starter, Growth and Premium: how many emails a month each includes, whether you can send from your own domain, how many automations can run at once, and whether the "Sent with HumanixOS" footer is shown.
  • Pay monthly or annually. Annual gives you two months free, and it's your choice for email whatever your main HumanixOS plan does.
  • Switch plans at any time. You'll see the price before anything changes.
  • Moving back to Free keeps your plan until the end of the period you've paid for, and you can change your mind until then.

Organizations sponsored by a funding partner can buy an email plan too. Owners and admins can change the plan; everyone else can see which plan you're on.

Easier to find and fill in family member details

If a service records details about each family member, such as ages, clothing sizes or gift requests, they are now much easier to find.

  • On the service page, every family's Members cell has an Edit details button that opens the family's details ready to fill in. A family with nobody listed yet shows Add details.
  • On a household's own page, each service under "Services received" shows what has been recorded for each person, or says that nothing has been recorded yet. If you can edit service records, you can fill in the details right there.
  • Answers show the way you'd expect: Yes or No instead of "true", the dropdown choice you picked, and dates in your own format.
  • Printed family sheets now always show each person's name and no longer include internal reference codes.

If a service doesn't record member details yet, staff who can change the service will see where to set them up.

Grant reminders now reach you

Grant reminders now arrive as notifications on the day they're due. These include an application deadline coming up (30, 14, 7 and 1 day before), following up two weeks after you submit an application, checking its status after a month, a decision date coming up, and reporting deadlines found in your grant documents. A reminder that no longer applies, such as a deadline reminder for an application you've already sent, is skipped.

Owners, admins and managers get them, along with whoever set the reminder. You can turn them off under Settings > Notifications.

Grant tasks can now only be assigned to people in your organization.

Household metrics at a glance

The Households page now opens with a row of at-a-glance figures in its top bar, matching the Services page: how many households you have, the total number of people across them, how many of those people are on file with their own record, and how many are children. The count still narrows to your search as you type, so you can see how many households match what you're looking for.

A clearer home page for your accounts

The page you land on after signing in now fits where you are.

New here? You'll see two choices right away: join your team with an invitation code, or create a new organization. You can type your code straight into the page.

Invited somewhere? Pending invitations sit at the top, with the organization or funding partner, your role, and Accept and Decline buttons. Invitations from funding partners now appear here too.

Belong to several accounts? They're grouped into organizations, the volunteer portal and funding partners, with the ones you opened most recently first and your current one marked. Once you have more than six, a search box appears. You can archive accounts you rarely use to tuck them out of the way. You stay a member, and you can bring them back at any time.

Your name, account settings and log out are now in the menu at the top right, next to a Feedback button for reporting a problem or suggesting an idea.

Typed dates format themselves and catch mistakes

When you type a date into a table, such as a delivered date on a service, the slashes now fill in as you go: typing 12212025 becomes 12/21/2025. Dates follow your language setting, so French and Spanish users type them in the order they're used to.

If what you typed isn't a real date, such as February 30, the field turns red and tells you, and the date isn't saved. Before, a mistyped date could be dropped or reverted without any warning.

Clearer errors when a campaign can't be saved, and a fuller Activity log

  • Saving an email campaign that is missing something (its content, its name) now tells you so instead of appearing to succeed while nothing was saved. The same goes for testing, duplicating, pausing and cancelling a campaign.
  • The Activity log now records grant tasks and texting contacts: adding, editing or removing either shows up under Grants and the new Text messaging area. Donation entries now name the donor instead of showing a blank record.

Ledger: Form 990 functions, funds and programs, receipts

The finance ledger now does more of the bookkeeping for you.

Program, management and fundraising

Give an expense category a default split, such as 70% program, 20% management and 10% fundraising, and every expense in it counts that way. Any single expense can have its own split instead. The Summary's new By function view shows your year the way Form 990 asks for it, including what is not allocated yet.

Funds and programs

Tag a transaction with a fund and with the program it supports. The Summary can show income and expenses by fund or by program, and the CSV export follows the view you picked.

Remembers your payees

When you type a payee you have used before, the ledger fills in the category, grant, fund, program and split you gave it last time. Anything you have already filled in is left alone.

Catches duplicates

If a new entry has the same date, amount and payee as one already in the ledger, you're asked before it is saved. Importing the same bank export twice skips the rows already there, unless you choose to keep them.

Receipts

Attach photos or PDFs of receipts to any transaction you enter. Choose Read receipt to have an AI service read the vendor, date, amount and a short description for you to check and apply one by one. Nothing changes until you apply it.

Build a form from a photo of your paper one

If your intake form lives on paper, you no longer have to retype it. On Forms → New form, choose Scan a paper form, photograph the pages, and HumanixOS reads the questions and builds a draft for you to check.

It tells you what it could not read instead of quietly guessing, and flags any question it was unsure about so you know where to look first. Nothing is saved until you've reviewed it.

Paper forms you hand out now come back in, too. Printed forms carry a small code in the corner, so when you scan a completed sheet HumanixOS knows exactly which form it is and transcribes the answers onto it. Open the form, choose Scan a filled-in form, and check the answers it was unsure about before recording it.

Scanned answers arrive as a pending submission, the same as one someone filled in online — approving it is still what creates or updates any records.

Scanning uses an AI service outside HumanixOS to read the photos, and everything on the page is sent, so cover any sensitive answers (such as Social Security numbers, medical details or bank account numbers) before you scan a completed sheet. A scan never fills in a Social Security number; add it by hand. To build a new form, scan a blank copy. The scan screen says all of this too.

Find people by how their name sounds

When you search for someone on the clients page and the spelling you typed finds no one, or almost no one, the page now also shows similar-sounding names: people whose names are spelled a little differently or sound the same. Searching "Shawn" can now find Sean, "Kathy" finds Cathy, and "Mohammed" finds Muhammad.

These suggestions appear in their own section above the list, never mixed in with your search results, so it is always clear which people matched what you typed and which only sound alike. Click a name to open that person's page.

Owners and admins can turn the suggestions off, or back on, for the whole organization from the settings panel on the clients page.

Automations: alert your team, and see who opened

Two new things in email automations.

Notify staff

Add a Notify staff step to let people on your team know when someone reaches it, for example when a first-time donor gives $1,000 or more. Choose who to tell, whether in the app, by email or both, and add a short note. Each person gets the email in their own language, and can turn these alerts off in their notification settings.

See how automation emails do

Automation emails now record when they're delivered, opened and clicked, and when they bounce. If an address bounces permanently or someone marks the email as spam, they stop getting your emails, the same as with campaigns.

You can also branch on it: add an If/Then step that checks whether someone opened, or clicked a link in, an earlier email. Put a wait before it so people have time to open the email.

Services: take attendance for classes

If one of your services is a class that meets on several dates, like a weekly English class or an 8-week workshop, you can now take attendance for it instead of adding a new entry for every class.

  • Turn it on per service. In the service's settings, switch on Track class sessions and attendance. Each person then has one entry: their enrollment in the class.
  • Take attendance in a minute. Press Take attendance, pick the date (today by default), and mark each person present or absent, with Mark all present for a full room. You can go back to any earlier date and change it.
  • See it on one line. A new Attendance column shows how many classes each person came to, like "6 of 8". Click it to see exactly which classes they missed.
  • Download it for funders. Export the attendance as a spreadsheet, one row per person per class.

Text messaging: clearer consent and a public terms page for your organization

Mobile carriers review every organization's text messaging registration, and they look closely at how people agree to receive texts. We've made that clearer, so registrations go through the first time.

  • Your own text message terms page. Your organization now has a public page with your terms and privacy details for texting. Your registration links to it, so carriers see your organization as the sender.
  • Consent boxes on public forms start unticked. People tick the text message boxes themselves, and a short notice under the boxes explains what they're agreeing to. Leaving a box empty no longer opts someone out of texts they agreed to earlier.
  • A script for staff. When you record that someone agreed to texts in person or by phone, HumanixOS now shows a short script to read to them first.
  • STOP means stop. When someone replies STOP, they now stop getting every kind of text from your organization, not just promotional ones.
  • See why a registration was turned down. If carriers reject your registration, the reason now appears on the Text messaging settings page.

Dashboard: a card for your grant tasks

You can now add a Grant tasks card to your dashboard to see where your grant work stands without opening each grant.

  • Adding it: choose Customize, then Add Card, and pick Grant tasks under Ready-made cards.
  • What it shows: how many tasks are open, overdue, due in the next 7 days, and finished in the last 30 days, with open tasks broken down by priority so urgent work stands out.
  • Up next: the five tasks to act on first, overdue ones at the top. Click one to open that grant's Tasks tab.
  • Everyone or mine: switch between all of your organization's tasks and the ones assigned to you. The card remembers your choice.

Tasks on archived, rejected or closed grants are left out. The card appears for anyone who can view grants.

Inventory: change an item's category until it's given out

An item's type is now simply its category, such as Food or Clothing, and it's easier to put an item in the right one.

Change the category until the item is given out

You can now change an item's category even after you've received stock of it. It locks once any of the item has been distributed, so your funder reports keep counting those goods under the category they went out under.

Item types describe suggestions

When you edit an item type, its fields are labelled as what they now are: variation fields suggested to new items, and details every item of the type records. Two new switches, Suggest serialized and Suggest tracks expiry, set what new items of the type start with. Changing a type never changes items you've already made.

Safer variation choices

You can't remove a choice, such as a size, from an item's variation field while stock is still sitting under it. Otherwise that stock could no longer be received or adjusted. Distribute or adjust it to zero first.

Inventory: each item chooses what its variations are

Items that come in variations now choose their own variation fields, such as size, colour or count. You no longer need a new item type for each product just to get the right fields.

Setting them up

When you create an item and tick Does this item come in variations?, the fields its item type suggests appear as a starting point. Rename them, change them, reorder them, remove them or add your own, up to 3 per item. Changes to the item type later never change items you have already made.

Changing them later

You can add a field to an item at any time, even once it has stock. Its existing variations show the new field blank. A field that a variation already uses can't be removed, and its kind can't change, but you can still rename it or change its choices.

Your existing items keep the fields they had, and their stock is unchanged.

Also fixed

  • A stock import row for an item that comes in variations now says why it can't be recorded ("receive it through Receive") instead of showing a database error. The other rows in the file still import.
  • Purchase order lines no longer ask for variation fields on items that don't have variations.

Ledger: a yearly summary, budgets, and your donations in one place

The ledger now does the work of the spreadsheet many of you keep beside it.

  • Summary. A new Summary tab shows each category's income and expenses month by month for the year, with totals and your net. Download it as a spreadsheet for the board.
  • Budgets. Enter a budget for each category on the Summary and see what's left and how much you've used, next to how far through the year you are.
  • Donations from Donors. Turn on Show donations from Donors in Ledger settings and the gifts you record in Donors appear in the ledger as income, with no need to type them in twice. They stay in step automatically: change a gift in Donors and the ledger follows. It's off until you switch it on. If you've been typing gifts into the ledger by hand, remove those entries when you turn it on so they aren't counted twice.

Grants: track grant spending by QuickBooks class

If your books separate programs with QuickBooks classes rather than a separate account for each program, you can now map a grant to its classes.

  • Where: on a grant's Details tab, the GL Accounts card has a new QuickBooks classes section. Pick the classes this grant's spending is tagged with and save.
  • Classes only: the grant's actuals are every expense booked to those classes, whatever the account.
  • Accounts and classes: each mapped account counts only its activity in those classes, so a shared account like Program Services can be split between grants. The account's percent and cap still apply.
  • Accounts only: works exactly as before.

The card says which rule applies, and the Budget page's By Grant tab marks grants whose actuals are narrowed by class. If your QuickBooks company doesn't use classes, the card says so. You can turn on class tracking in QuickBooks settings.

Inventory: serialized and expiry tracking are set per item

Whether an item needs a serial number for each unit, or an expiry date when it's received, is now a switch on the item itself instead of something decided by its item type.

Two new switches on every item

  • Serialized: receiving asks for one serial number per unit, and each unit is tracked on its own.
  • Tracks expiry: stock must be received with an expiry date.

When you create an item, the switches start from what its item type suggests, and you can change them for that item. You can change them later too; only stock received afterwards is affected. Your existing items keep the settings they had.

Receiving

Every receipt now offers an optional expiry date and lot number, whatever the item, so you can record them when you have them.

Also

  • Purchase orders ask for expected serial numbers only for serialized items.
  • Serialized items can no longer be given a quantity on hand when they're created, because each unit needs its serial number. Receive them instead.
  • A stock import row for an item that tracks expiry needs an expiry date, the same as receiving it.

Fixes: the ledger Summary on reload, and shared report links

Two things that did not work the way they should:

  • The ledger Summary tab came up empty when you opened or reloaded it directly in the evening. It now loads fully every time.
  • Sharing a report with a teammate sent them to a "page not found". The link now opens the report. The same goes for a shared form submission, which now opens its form.

Also: an item that already had variations recorded (sizes, conditions) but was never marked as having them now shows those variations on the Receive form, so new stock lands on the right one.

Inventory: each variation can have its own cost

Variations can now carry their own cost, the way they already carry their own retail price. If you buy a Red 500ml and a Blue 1L at different prices, you no longer have to correct the cost on every receipt.

  • Setting it: when you create an item with variations, each row has a Cost box. Leave it blank to use the item's cost. You can also set or clear a variation's cost from the item page.
  • Receiving: the cost box fills in from the variation you pick, falling back to the item's cost.
  • Remembering: type a different cost for one variation on a receipt, and that variation remembers it next time. Its siblings keep using the item's cost.
  • Purchase orders: a line that names a variation fills in that variation's cost, unless you've already typed one.
Week of September 21, 202659 updates

Automations now start on their own

Email automations can now start by themselves when something happens, instead of someone enrolling people by hand.

Choose what starts an automation

  • A donation: any gift, a donor's first gift, or recurring gifts. You can also set a minimum amount or pick a fundraising campaign.
  • A form: when a submission of the form you choose is approved and linked to someone in your records.
  • An event registration: when someone in your records registers for, or checks in to, the event you choose, or any event.

People are enrolled within a couple of minutes. Imported records never start an automation, so bringing in years of past donations won't email anyone.

Set a goal

In an automation's new Settings, turn on "Leave when they donate". Anyone in the automation who then gives leaves it straight away, so a "we miss you" series stops as soon as it has worked.

Once per person, unless you say otherwise

By default, someone who has been through an automation isn't started on it again. A monthly donor gets the welcome series once, not every month. You can allow repeats, with a waiting period, in Settings.

Donors who aren't linked to a person in your records are reached at their donor email address. Anonymous gifts, and donors marked "do not contact", are never enrolled.

See how many emails you've sent this month

Your email plan includes a number of emails each month. You can now see how much of it you've used, and campaigns won't go past it by surprise.

Emails this month

  • Settings > Email sending now shows how many emails you've sent this month out of your plan's allowance, with a bar that turns amber as you get close and red when you're nearly out.
  • Campaign and automation emails count. Test sends and account emails (like password resets) don't.
  • The count starts again on the 1st of each month.

Sending a campaign

  • When you press Send, the confirmation tells you if the audience is bigger than what's left this month.
  • A campaign that doesn't fit is stopped before anything goes out, with a message saying how many emails it needs and how many are left. Nothing is half-sent. Move to a bigger plan, or wait for the new month, and send it again.
  • A scheduled campaign that doesn't fit is marked as failed at its send time, with the same explanation.
  • If sending a campaign is refused for any reason, you now see why. Before, some refusals looked like the campaign had been queued with no recipients.

Automations

  • If you reach your monthly limit, automation emails wait instead of being skipped. They go out when the new month starts, or within minutes of moving to a bigger plan, and the automation carries on from there.

Permissions

  • Sending, scheduling, pausing and resuming campaigns now follow the Email Builder permission in your roles, so people without it can't send campaigns.

Fixes across reports, emails, households and settings

A round of fixes from our latest review sweep.

Reliability

  • Pages no longer fail now and then with a "Bad Gateway" error.
  • If a page can't load your account or organization, you now see a clear message with a Try again button instead of "Page not found".

Activity log

  • Creating, changing and deleting email campaigns, automations, forms, reports, inventory items and households now shows up in the Activity log.

Reports

  • Household rows count the family members they list, and exports match what you see on screen, column for column.
  • The "over time" chart groups by day, week or month depending on the range, and shows the year when the range crosses one.
  • City and state charts now include an "Other" row, so their totals add up to every delivery.
  • "View report" in the ready notification opens the report itself.

Emails and automations

  • Automation conditions let you pick an email list from a menu instead of typing an ID.
  • When choosing people for a campaign by hand, you can now search the list.

Households and forms

  • Changing the head of a household keeps the previous head in the household as a member.
  • A new household suggests a name from the head's surname.
  • The form preview shows the household questions the public form asks.

Settings and inventory

  • Household fields, Inventory and Event types settings now appear in the Settings menu.
  • A new inventory item gets a SKU automatically if you leave it blank, and variants are listed in a sensible order.

The free trial is now 30 days

New free trials of HumanixOS now last 30 days instead of 60. You still get full access to every feature during the trial, and there is still no credit card required to start.

  • Already on a trial? Nothing changes for you. If your organization started its free trial before this change, you keep the full 60 days you signed up for. Your countdown, your billing page and our reminder emails all show your own trial's length.
  • Better-timed reminders. We now send the first "your trial is ending" reminder two weeks before the trial ends, then one week before, the day before, and when it ends. You won't get a reminder on the same day you start.
  • Subscribing early still costs nothing extra. If you choose a plan during your trial, your first charge still waits until the trial is over, unless you choose to start billing right away.

Dates show on the right day, and dropdown choices keep their values

Two fixes for things that quietly went wrong for people in the Americas and for anyone who edits their custom fields.

  • Dates no longer show a day early. Volunteer hours, a volunteer's date of birth, the dates on a person's service history, grant deadlines and start and end dates, report due dates, task and compliance due dates, receipt dates on purchase orders and the automation activity chart all showed the day before the one you entered if your computer's time zone is west of Greenwich. They now show the day you entered, wherever you are.
  • Saving a field list keeps your dropdown choices intact. Adding or removing a household field or a distribution field used to rewrite the stored value of every dropdown choice on the other fields, so records that already held a choice stopped matching it. Choices now keep their stored values; only the wording you edit changes.

Email builder, campaigns, texting and report fixes

A sweep through email, text messaging and reports:

  • Email builder. Typing in a text block and then saving or previewing no longer freezes the page, the preview pane shows the rendered email, and Send Test tells you when a test could not be sent (an unusable address, a demo account) instead of reporting success.
  • Scheduled campaigns. A scheduled campaign can now be taken off the schedule from its card menu or its page. It returns to a draft you can edit, reschedule or delete.
  • Automations. An automation with an unfinished If/Then or action step can no longer be switched on; the checklist names the step to finish. The Enrollments tab shows newly enrolled people as soon as the dialog closes.
  • Text messaging. The Consent page lists consent for every purpose (with a purpose filter and column) and searches your whole list. A draft campaign can be started from its saved list or segment, or deleted. A campaign's page counts every recipient, including skipped ones, and agrees with the campaign list.
  • Reports. The PDF's headline total is the number of people in the report, its header names the report type in plain words, and Create Report waits for the AI summary to finish before saving.
  • AI search. Asking about a state works whether your records say "VT" or "Vermont".
  • Smaller fixes. Content blocks refresh after a save and label their type; email lists, the schedule confirmation and automations use your organization's own word for its people; "Mark all as read" reports how many notifications it marked; drag-and-drop editors no longer log a hydration warning on load.

Event templates, your own event types, and steadier service records and forms

A round of fixes across events, service records, forms and the calendar.

Events

  • Event templates open again. The templates list and each template's page showed an error as soon as you had saved one; both work now.
  • Creating an event now offers your organization's own event types (the ones under Settings > Event types), and the type filter on the Events page lists them too. Before, both showed a fixed built-in list, and picking from it quietly added a new type to your settings each time.
  • A new event template no longer starts with a hidden "Fundraiser" type attached.

Service records

  • Date fields on the service records grid save when you type a date or pick one from the calendar. They used to show the new date and then lose it on reload.
  • Amount fields accept what they display: typing "$1,000" into a currency cell now saves one thousand instead of being ignored.
  • The field list in Edit Service Config names each field's type ("Short Text", "Currency") rather than showing an internal key.

Forms

  • A form you saved as a draft and came back to later publishes at the web address built from its title, not at a temporary "draft-…" address.
  • Choosing a form type no longer leaves an empty draft in your Forms list if you walk away before adding anything.
  • Forms set to "Review before adding" now check each submission against the people you already have, so the review screen shows likely matches and lets you link to an existing person instead of creating a duplicate.
  • Denying a submission from the list asks you to confirm first, and quick approvals and denials no longer add an automatic note to the submission.
  • The Forms pages load faster: they no longer download your whole client list just to show the forms.

Calendar

  • Service records created by an event no longer show a misleading time of day on the calendar.
  • Clicking an event in the calendar's day panel opens that event.

Surveys

  • The answer-type badge on each survey reads "Yes / No" or "Rating" instead of an internal key.

Form builder: see the family member questions as the family will

When you build a form for a household service, the questions asked about each family member now appear on the canvas as real questions instead of a row of labels.

Open the "Person 1" card to see each question the way a family will: a long answer gets a text box, a choice question lists its choices, and dates and numbers look like dates and numbers.

These questions still belong to the service, so the section says so and links straight to the place where you add, remove or change them.

Grants, donors and ledger fixes

A round of fixes across grants, donors and the finance ledger:

  • Add Donor no longer crashes the page when you click Create with the form empty; it now points at what is missing.
  • The Compliance and Reports pages under Grants load again, and both are now linked from the grants navigation bar, next to Pipeline.
  • Every grant has a Budget tab where you can set up a budget, add categories and entries, and request reallocations. The burn-rate card appears once a budget exists.
  • Add Note and Upload Document on a grant work again.
  • An archived grant can be restored: tick "Show archived" on the grants list, open the grant, and choose Restore.
  • Searching donors by full name ("Jo Davis") finds the donor, in the donors list and in the Record Donation picker, and the donation search box now searches instead of listing everything.
  • A grant opportunity can be saved without a minimum or maximum amount.
  • In the ledger, a new row is saved once it has an amount, and it stays where you typed it instead of jumping to the top while you are still filling it in.
  • Connect Calendar on a grant now opens Connected apps.

Inventory fixes from our QA sweep

A round of fixes across Inventory, found in a full review of the module.

  • Customizing a built-in item type now works even when your items already hold stock. It used to fail with an error for exactly the types you had been using.
  • Recalled stock no longer counts as available. Item pages, the items list, the on-hand report and the Distribute form show only what can be handed out, with recalled units called out separately on the item page. A distribution that runs into recalled stock is refused in plain words instead of an internal id.
  • Receiving part of a purchase order keeps the order open, so the rest can still be received against it. The order is marked received once every line is complete, and the Receive page pre-fills what is still outstanding.
  • Purchase orders have a "Mark as open" button and, once open, a "Receive against this order" button, so a new order no longer needs Edit to move forward. Statuses read as words everywhere.
  • Printing a pick sheet or the on-hand report now prints just the sheet: the sidebar and top bar stay off the page and wide tables fit on it.
  • The Receive and Distribute forms say what is still missing when the button is disabled: which line, and which field.
  • Recall pages and recall notices name the item that was recalled.
  • Cancelling a physical count asks first, and the review dialog reads correctly when every count matches.
  • Money columns in the on-hand and distributed CSV exports are rounded to cents.
  • Smaller fixes: custom fields in the distributions list show their labels, the item page shows stock handling and recall status in words, dates in purchase orders, transfers and recipient history match the rest of Inventory, monthly totals on the distributed report show the month name, and a purchase order records who created it.

One billing day for all your plans

Your HumanixOS account plan, email plan and text messaging plan are billed separately, and until now each one renewed on the day you bought it. Three charges on three different days of the month is noise for whoever does your books.

From now on, a new email or text messaging plan renews on the same day of the month as your account plan (or, for organizations without an account subscription, on the day your first add-on renews). The first payment covers only the days until then, and the checkout page says so before you pay.

Plans you already have can be moved too. Settings > Plan and billing now has a Billing day row under Add-ons. When your plans renew on different days, an owner or admin can move the add-on plans onto your account plan's day in one click. The unused part of the current period is credited on the next invoice, nothing is charged that day, and the change shows in the Activity log.

People: better checks when adding and importing

A round of fixes across People, Households and Imports from our latest review sweep.

Finding and adding people

  • Searching for a person by their full ID (for example CL26-0022) now finds them.
  • The People page no longer fails to load when a saved view was stored in an older format.
  • Adding a person now asks for at least a first or last name, and an email address has to look like one — whether you add someone from the Home page, the Add People grid, or edit a cell inline. Fields you never filled in are left empty instead of being saved as 0 or "No", so reports no longer count untouched answers.
  • A person with no name is shown as "Unnamed" on their page and in the delete confirmation, rather than a blank line.

Reports

  • The summary on a People report (total, average age, top cities, gender and ethnicity) now covers everyone in the report, not just the first page that was loaded on screen.

Households

  • When the head of a household is deleted and another member takes over, that member is no longer listed twice.
  • Saving a household's edit form keeps what you typed on screen until the page changes, so a slow save no longer looks like it failed.

Imports

  • The review step now flags a row with a bad email address or an impossible date so you can fix or skip it before importing.
  • A two-letter state that isn't a real state code (like "ZZ") is kept as typed instead of being turned into a real state.
  • An import in which no rows could be saved is recorded as Failed, without a Rollback option.
  • The Skipped column in the import history counts the rows you left out on the review step.

Dashboard

  • Dashboard cards load their data once per visit instead of twice.

Service reports you can hand to a funder

Service reports are the document you send to a donor or grantor, so we reworked them to read like one.

The figures come first

  • A saved service report now opens with its headline figures: people served and families served for a family program, the number of people served for a program that serves individuals, and the number of deliveries.
  • Exported PDFs and Excel files lead with the same figures, followed by your report summary. The Excel file now opens on its Summary sheet. CSV files stay a plain data table, so they still import cleanly anywhere.
  • The AI-written summary now writes numbers as numerals ("5 families", "20 people"), the way a funder expects to read them.

Who was in each family

  • When a report on a family program is created with personal information included, it now lists each family's members and what you recorded about them, such as sizes and wishes. It appears in the report and in its exports.
  • Reports created without personal information show family counts only, as before, and "Exclude personal information" on export removes the family details too.
  • Family details are never sent to the AI that writes the summary. It only ever sees totals.

One set of charts

  • A saved report no longer shows the same timeline and location charts twice. The charts you see when creating the report are the report's charts, and you can still add, edit or remove them.
  • New reports include a chart for each of your service's choice fields (dropdowns, multi-selects and yes/no questions), showing how many deliveries recorded each option.

Settings and account fixes

A round of fixes across Settings, sign-in and the public pages:

  • Data export tells you why an export could not be finished, instead of only asking you to start a new one.
  • Team no longer sends an invitation to someone who is already a member; the invite form says so.
  • Billing and Team now count seats from the same place, so the two pages agree.
  • Turning a module on or off is recorded in the Activity log, and opening a page of a module that is off shows a proper "not found" page.
  • The Activity log reads more naturally: a downloaded person record is described as the record, a stock count as the count, and the volunteer hour value as an organization setting with its before and after values.
  • Outbound webhooks must use an HTTPS address, and a rejected address is explained in plain words.
  • Branding checks that a colour is a valid hex value before you can save it.
  • The changelog page now shows recent weeks and links each earlier month to its own page.
  • In French, the team roster, the profile page and several buttons read correctly.

Text messaging settings, redesigned

The Text messaging pages in Settings now follow the same layout as the rest of Settings: one column of settings, each with a short explanation and its control beside it.

  • Overview shows where your carrier registration stands, your SMS plan, and links to templates and campaigns. Changing or cancelling the plan happens from one Change plan button.
  • Set up walks through the same steps as before, with Back and Next in the bar at the top. Leaving mid-way now asks first.
  • Numbers, Preferences and Usage are laid out as rows. Preferences saves from the bar, and tells you when there are unsaved changes.
  • Consent and Messages list one person or message per row instead of a wide table, so they read well on any screen.
  • Every change on these pages now appears in the Activity log.

Volunteer fixes: removing volunteers, rejecting applications, and clearer hours

A round of fixes across volunteer management:

  • Removing a volunteer works again. Removal failed for anyone who had joined through an application or an invitation, leaving them in the list.
  • Rejecting an application works again, and the applicant's status page now shows the same contact address as your application form.
  • The hours report no longer puts a dollar value on voided or rejected hours. With "All statuses" selected those hours are still counted, but the value and the grant export cover only the hours that stand, and the export says so.
  • All recorded hours are reachable. The hours page now shows how many entries there are and loads more on request, instead of stopping at the first 100.
  • The check-in kiosk names its shift and its time, so two kiosks are easy to tell apart, and it waits for the check-in window instead of scanning for a shift that has not opened.
  • Inactive volunteers are labelled in the volunteers list and in the shift assignment dialog, so it is clear why they cannot be assigned.
  • New volunteers land on their portal right after creating their account, without signing in a second time.
  • Error messages now say what went wrong ("Invalid email address") instead of a bare status code.

Know when automated texts don't go out

Event reminders, form follow-ups and recall notices sent by text count toward your monthly text message limit, just like texts your team sends. Until now, once the limit was reached they simply stopped, and nobody was told.

  • A new Delivery issues page under Settings > Text messaging lists this month's automated texts that weren't sent, grouped by where they came from (event reminders, form follow-ups, recall notices) and why. Each reason says what to do about it (for example, raise your SMS plan when the monthly limit is reached) and links to the events and forms it happened on.
  • An optional daily nudge. Owners and admins can turn on "Daily nudge about unsent automated texts" in Settings > Notifications to get at most one in-app notice a day when some automated texts weren't sent, linking to the Delivery issues page. It's off unless you turn it on.
  • The event's Reminders tab and the form's Follow-ups page now say how many texts weren't sent this month, and why, such as "3 reminder texts weren't sent this month: SMS limit reached", with a link to the Delivery issues page.
  • Follow-up texts are only offered where they can arrive. A form that doesn't link the people who fill it in to client records (feedback and check-in forms, or an immediate follow-up on a form you review first) can send follow-ups by email only. Any text follow-up already set up on such a form is marked as not deliverable.
  • Immediate follow-up texts now reach the client the submission was matched to. Previously they could fail even when the form linked a client.

See clicks on every button and link in an email campaign

A campaign's results page now shows clicks for each button and link in the email, not just for each web address.

  • Every button and link has its own row, named by its text as sent, such as "Donate Now". Two buttons that go to the same page are counted separately, so you can see whether people use the big button at the top or the link at the bottom.
  • When the same text appears more than once, the rows are numbered ("Donate Now (1)", "Donate Now (2)") in the order they appear in the email.
  • The list is no longer cut off at ten links. Use Show more to see them all.
  • Open a row to see who clicked it, when, and how many times. This needs permission to export client data; everyone else sees the counts.

This applies to campaigns sent from now on. Earlier campaigns, and clicks on emails written without the email builder, are still listed by web address.

Export permissions now control real downloads

The Export switches on the Permissions page now each control a specific download, and they say which one. Hover any Export switch to see exactly what it covers, for example the service records spreadsheet, a generated report or the inventory stock lists.

Turning Export off for a role now actually stops that role from downloading. The service records spreadsheet, the inventory on-hand, distributed and count variance files, and the downloads from AI search results all follow the Export switch for their area. Before, some of these downloads were open to anyone who could see the page.

Areas that have nothing to download no longer show an Export switch, so the page only offers choices that do something.

The full organization data export, which downloads every record your organization holds in one file, is now clearly marked on the Settings row. Turning a whole column of switches on or off no longer changes it; it only changes when you flip its own switch. New custom roles no longer get it by default.

If a role on your team relied on one of these downloads, an owner or admin can turn Export back on for that role on the Permissions page.

Set up your fields from a form you already use

Moving to HumanixOS usually means rebuilding your paper or PDF intake form field by field. Now you can upload it instead.

  • On the Imports page, choose Fields from a document, pick where the fields should go (your client fields or one of your services) and upload a PDF, Word (.docx) or plain text file.
  • AI reads the document and proposes the fields it collects, with the right type for each one and the answer choices when the form lists them ("circle one", check boxes).
  • Review the list and add the fields you want in one click. Fields you already have are marked so you don't create duplicates.

The same Upload a document option is also in Generate with AI wherever you add client or service fields.

Only the field setup is created: nothing on the document is imported as client or service records, and the file isn't kept. Scanned documents without selectable text can't be read yet.

Draft grant report sections with AI

Grant reports no longer start from a blank page. Set the reporting period on a report, open the Content tab, and each section now has a Draft with AI button. The draft is written from what you have recorded for that grant during that period: spending in its budget tracker and any ledger entries tagged to it, goods distributed from inventory the grant paid for, grant tasks, upcoming compliance deadlines and the next report due. It appears in the field as it is written, in your language, and you edit it from there.

Draft empty sections fills every section you haven't written yet, one after another, and leaves the ones you have alone. If a section already has text, drafting it asks first before anything is replaced.

The draft only uses figures your records hold, exactly as they are recorded. It never estimates a number, and it never says how many people were served, because a grant isn't linked to the people it reached. Where a section needs something only you know, such as the reason behind a budget variance, the draft leaves a bracketed note for you to fill in. If nothing recorded bears on a section, you're told so and it's left for you to write.

Financial reports now also have a Projections section, drafted from the grant's spending so far.

This release also fixes the report form, which could move the reporting period and due date back by one day when an existing report was edited and saved.

Ask for your household fields on family registration forms

Family registration forms can now ask for the household fields you've set up in Settings, such as housing status, primary language or referral source.

  • In the form builder, a family registration form lists your household fields alongside everything else. Add them like any other field, reword the question for the form, and mark it required.
  • If a household field is required for every household, the builder tells you when it isn't on the form yet, so no registration gets stuck waiting for an answer nobody was asked.
  • Families answer with the right kind of control: a list to choose from, boxes to tick, a date picker. The fields follow the form's language and appear on the printed version too.
  • When you approve the registration, the answers are saved on the new household. You can see them on the submission before you approve.

A simpler, clearer Settings

Settings has a new layout. Every page follows the same pattern: a short list of settings, each with a one-line explanation and its control beside it, and the page's buttons in the bar at the top. Search at the top of the menu finds any setting by name.

  • Roles and permissions: each role has its own page. Pick one level per area (No access, View, Edit, or Edit and delete) instead of a grid of switches, and see exactly what will change before you save.
  • Activity log: every entry reads as a plain sentence, grouped by day, with filters for person, area and date, and a download for owners and admins.
  • Export data: exports are prepared in the background, so large organizations no longer time out. You'll get a notification and an email when yours is ready, and it now includes inventory, households, text messages, financials and your custom field definitions.
  • Plan and billing: see how many users and people you have against your plan's limits, and the exact amount you'll be charged or credited before you change plans.
  • Connected apps, Calendar feeds and Webhooks each have their own page.
  • If you try to leave a page with changes you haven't saved, HumanixOS asks first.

Turning on text messaging works again

Setting up text messaging from Settings → SMS was stopping with an error before your organization's registration reached the carriers. That is fixed.

The setup form now asks for your organization's industry. Nonprofits and government agencies have it filled in for you, and you can change it.

The carriers check your organization against the address on your organization profile, so setup now uses that address. If any of the street, city, state or ZIP code is missing, the form tells you before anything is submitted. You can fill it in under Settings → Organization.

Carrier approval still takes from a few business days to about two weeks. While you wait, the setup page shows where your registration stands, and Check status now gets the latest answer. Once your organization is approved, your messaging campaign is sent for carrier review without you doing anything.

Text messaging setup is not yet available for sole proprietors.

Subscribe to and manage your SMS plan in Settings

Setting up texting now starts with choosing your SMS plan, and you can manage that plan yourself afterwards in Settings > SMS.

  • Compare Starter, Growth and Team: the monthly price, how many texts a month each includes, and how many phone numbers you can hold.
  • Before anything is charged you'll see exactly what you'll pay and when: the monthly price today, then every month on the same date.
  • Once your payment goes through, you finish the registration with the carriers as before. If the payment doesn't go through, nothing is registered.
  • Switch plans at any time. Moving up or down charges or credits the difference for the rest of the month straight away.
  • Cancelling keeps your plan until the end of the month you've paid for. Your carrier registration and phone numbers are kept, so you can subscribe again without registering again.

Owners and admins can buy and change the plan. Organizations that were already set up for texting keep working as they are.

Edit family member fields on service templates

Service templates now let you set up what you record about each person in a family, not just the fields for the delivery as a whole.

  • Edit on a template shows its family member fields, so you can add, rename, reorder or remove them without saving the service as a new template.
  • New Template can include family member fields from the start.
  • The field count on each template now includes its family member fields.

The section appears when Households is turned on for your organization.

Add a column right from the spreadsheet view

When you're entering data in the clients table or a service's entries table and realize you need one more column, you no longer have to leave the grid. Click the + at the right end of the column headers, give the column a name and pick its type, and it appears immediately, ready for you to start typing.

The column is the same custom field you would get from the field settings, so you can still rename, reorder or organize it there later. The + only shows for people who are allowed to edit the client or service setup.

Add several people to an event at once

Adding a class cohort or a program group to an event meant one pass through the Add attendee dialog per person, choosing the same timeslot, role and status every time.

You can now pick as many clients as you like in one go. Search, pick, search again; each person you choose appears as a chip under the search box. The timeslot, role, status and notes apply to everyone in the batch.

Seats are filled in the order you picked people. If the event or timeslot runs out of room part way through, the rest are waitlisted, and the result shows you exactly who landed where. Someone already registered for that timeslot is skipped rather than added twice, and if one person can't be added the rest still go through. The people who couldn't be added stay selected so you can fix the problem and retry just them.

A single client add now respects the event's capacity the same way.

Automation emails now always include an unsubscribe option

Emails sent by automation workflows now carry the same opt-out tools as your campaigns. Each message has an unsubscribe link at the bottom, and supports the one-click unsubscribe button that Gmail, Yahoo and Outlook show beside the sender.

If you put {{unsubscribe_url}} in an automation template, it now becomes a working link. Before, it came out blank.

Your organization has one unsubscribe list, shared by campaigns and automations. Anyone who has unsubscribed, from either, is no longer emailed by your automations. They leave the workflow quietly instead of showing as a failure.

Email campaigns ask before sending, and names show up correctly

A new email campaign no longer starts out addressed to everyone with an email address. You choose who it goes to, and before a campaign is sent or scheduled you now see how many people will receive it and confirm. Nothing goes out until you do.

Drafts now remember who you chose, including the exact people you picked by hand, so reopening a draft no longer means choosing again. Duplicating a campaign keeps every email list it used, not just the first.

Names with characters like "&" now appear correctly in subject lines and in the body of your emails, instead of showing odd codes. Web addresses in plain-text campaigns are now clickable links, and clicks on them are counted in your campaign's results. Links whose addresses contain "&" now take people to the right page.

We also removed the "send-time optimization" switch from the campaign editor. It never changed when a campaign was sent, so it should not have been there.

Email automations now run on their own

Email automations used to send their first email and then stop. Now they run all the way through: after a wait, the next step happens automatically, in your organization's time zone, and each email goes out once and only once.

You now enroll people by choosing clients rather than typing email addresses, so their names fill in your emails. Anyone without an email address, anyone who has unsubscribed, and anyone already in the automation is skipped, and you see who was added and who was not.

Before you switch an automation on, we check it for you and list anything missing, such as an email step with no email chosen. Your plan now sets how many automations can be active at once, and the Automations page shows how many you are using.

We simplified the steps you can add to the ones that fully work today: trigger, send email, wait, condition, update a field, send a webhook, and exit. Only people allowed to edit emails can build, switch on, or enroll people in automations.

Email campaigns now reach your whole audience, and scheduled campaigns send

Email campaigns sent to more than a thousand people could quietly stop at the first thousand, while the campaign still showed as sent. Choosing "All People" for a large organization could fail to build the audience at all. Both are fixed: a campaign now goes to everyone on its list, however large the list.

Anyone who has unsubscribed is always left out, including people who unsubscribe while a large campaign is still going out. If the unsubscribe list can't be checked for some reason, the email waits instead of being sent.

Scheduled campaigns now send at the time you chose. Before, a scheduled campaign stayed scheduled and was never sent.

When you press Send, the confirmation now tells you how many emails are on their way. A campaign only shows as sent once every email has actually gone out, and its numbers and progress bar count everyone on the list.

Set who your emails come from, once

You can now set your organization's default sender in one place: the name your emails come from, the address they are sent from, and where replies go. You'll find it on the email sending settings page, next to your sending domain, with a preview of exactly how the From line will look to the people you email.

New campaigns start with these details already filled in, so you no longer retype them every time. You can still change them for any one campaign. If your organization has its own verified domain, new campaigns send from your address by default.

Every campaign now has a reply address. If you don't set one, it defaults to a no-reply address on your sending domain (for example noreply@yourdomain.org), which does not accept replies, so set your own if you want to hear back from the people you email. Campaigns with no reply address of their own use your organization's default, and test emails now come from the same address, with the same reply address, as the real campaign.

Automated emails now show people's names and details exactly as written. A name containing characters like "&" or "<" no longer turns into formatting or odd codes.

Everyone you add to an event becomes a person on file

When you added someone to an event who wasn't in your records yet, the only option was a name and contact details typed onto the attendee list and attached to nothing. That person had no record to find next time — so you typed them in again at the next event — and on an event linked to a service they never appeared in the service or counted toward people served.

That option is gone. To add someone who isn't on file yet, search for them as usual and choose to add them as a new person. Before anything is created you'll see people on file who look like them, so a returning visitor is linked rather than entered twice.

People added the old way aren't left behind. If an event still has attendees who aren't linked to anyone, the attendee list says how many and offers a review. For each one it shows who they most likely are, and you choose: link them to that person, add them as someone new, or — if they're already on the list — merge the extra entry into their registration. Merging keeps their check-in, so nobody who turned up is marked as missing. Nothing changes until you choose, and once linked they count on the event's service just like everyone else on the list.

This matches what already happens when someone checks themselves in, so every way onto an event produces the same thing: a person you can find, serve and report on.

Notifications and ledger categories now follow your language

Notifications now appear in the language you've chosen for HumanixOS. That includes the title, the message and the button, so an invitation, a finished import or a volunteer's hours read in French or Spanish when that is your language. Switching language changes your whole notification history, not only new notifications. Very old notifications that we can't rebuild stay as they were first written.

When a teammate shares something with a personal note, the note appears exactly as they wrote it.

The starting categories for the finance ledger are now created in your organization's language. As before, you can rename, deactivate or delete any of them.

See returning families right on the submissions list

When a family registration form has pending submissions, each one now shows what approving it will do, without opening Review: a green note for a new family, a blue note naming the family already on file that the registration continues (with how many people are in it and how many are on file), or an amber note when the applicant heads more than one family.

The amber note opens Review, where you choose which family the registration is for. Quick approve waits until you have chosen. These notes are a preview: Review and approval check again before anything is saved.

See and fix when an event's people are missing from its service

When an event is linked to a service, everyone who registers or attends should appear in that service. Sometimes they didn't, and nothing told you. A record could fail to save in the background, a QR scan check-in never wrote one, and people who registered themselves before mid-September were never counted at all.

The event page now shows how many of the people served have a service record. When the numbers disagree, a Reconcile button makes the service match the roster: it adds the missing records and removes any for people who are no longer registered or attending. Records you entered by hand on the service are never touched.

Every place that adds or changes a registration now tells you right away if the service record could not be saved, so you can reconcile instead of finding out at report time. Service records created from an event are now dated to the event, not to the day they were saved.

Walk-ins at check-in now become real client records

When someone checked in at the door and wasn't found on the roster, they were added as a name and phone number attached to nobody. They showed as attended on the event, but they never reached the linked service, never got a client record, and had to be typed in again at the next event. If they were already a client, the roster showed them twice.

Check-in now looks for the person among your clients first, using the same matching rules your registration forms use. A confident match is checked in on their existing registration. Someone new becomes a client on the spot, with just the name and contact details they gave you. Either way, if the event delivers a service, they count as having received it.

The same check-in link can no longer be used twice at once, so two taps on a busy tablet cannot create two people.

A weekly digest of your organization's week

Owners and administrators now get a short email every Monday morning with what happened in their organization the week before, compared with the week before that:

  • New clients, services delivered and form submissions received, plus how many submissions are still waiting for approval.
  • Events held and coming up, and imports completed.
  • Grant pipeline changes and grant dates in the next two weeks, donations recorded and cash raised, and volunteer hours credited, for the parts of HumanixOS your organization uses.
  • Who on your team was most active.

Each digest also lists what's new in HumanixOS since the last one, so new features don't pass you by. A week with no activity sends no snapshot, only the product updates when there are some, and nothing at all otherwise.

The digest arrives in your own language. To stop receiving it, use the link at the bottom of the email or turn off Weekly digest email in Settings > Notifications.

Register someone new for an event without leaving the page

Adding an attendee to an event used to only let you pick someone already in the system. If they weren't there yet, your only option was a standalone row with just a name and contact info — it never became a real client record, so it wouldn't show up in that person's history or count toward service delivery.

The "Existing profile" tab now lets you create the person on the spot. Start typing a name, and if nobody matches you'll see an option to add them as a new client — with the same duplicate check used elsewhere, so you're warned before creating a second record for someone who's already on file. The new person is registered immediately, just like picking an existing one.

Emails now render correctly in dark mode

If you read HumanixOS email on a phone with dark mode turned on, some messages arrived looking broken: the logo at the top showed as a bright near-white block with the wordmark barely visible, and the body of the message came through darker than intended.

That affected every email we send — verification links, password resets, invitations, receipts, form notifications and campaigns alike.

Our emails now tell your mail app how they are meant to look in both light and dark mode, and the logo carries its own background so it renders the same way whichever mode you are in.

Write an event report summary with AI

Client reports and service reports have had a Generate AI summary button for a while. Event reports did not, so anyone writing one up after an event started from a blank box.

Now they have one too. Open an event, choose Generate report, and the Summary field has an AI summary button beside it. The summary appears as it is written, and you can edit it before you save the report.

It writes about what the event actually recorded: how many people came against how many places there were, how turnout was spread across timeslots, who was waitlisted, how many people checked in, and, when the event is attached to a service, how much of it reached a service record. Where your attendees are linked to client records, it can also describe who the event reached in aggregate.

No attendee's name, email, phone number or notes are ever sent to write it. Only counts and percentages leave your database, and the summary is written in your own language.

Say who someone is to the family, not just what they may do

Households could record that someone was a Guardian, a Child or an Adult. That says what a person is allowed to do — who may give consent, who can collect a delivery — but it cannot say that the woman raising four children is their grandmother.

You can now record a relationship alongside the role, for the head of the household as well as for each member. Pick from a list — parent, grandparent, foster parent, sibling, grandchild and more — and add your own wording beside it whenever the list does not fit the family.

Relationships appear on the household page, on a client's household card, on the family roster, and on the printed family sheet — so a volunteer at the door can see they are meeting a grandparent rather than working it out from "Guardian".

Nothing about permissions changed: roles still decide who may act for a household, and any notes you have already written are untouched.

See your import's progress while it runs

Importing a large file used to mean watching a spinner with no idea whether anything was happening. The import wizard now shows a progress bar with a running "rows imported" count for each step of the import, so you can tell a big file that is working from one that is stuck.

If your connection drops partway through, the wizard no longer reports the import as failed. It keeps checking with the server until that step finishes and then tells you what actually landed, so you are never sent to re-import a file that already went through.

New inventory items get their own page, and you can enter what you already have

Creating or editing an inventory item now happens on its own page instead of a pop-up window. The whole form, including every variation, scrolls with the page, so the Create button is never hidden below the fold. You can refresh the page or come back to it with the browser's Back button, and if you try to leave with unsaved changes we check with you first.

You can also enter how many you already have while you create the item. Each variation has a "Quantity on hand" box, and an item without variations has one. Leave it blank if you have not counted yet, or type 0 if you have none. The stock goes to the item's default location, or your organization's default location if the item has none, and shows in the item's history as stock you already had.

We also fixed receiving for items without variations whose item type marks a variation field as required. The Record Receipt button stayed greyed out for those items, so their stock could not be received.

Merging duplicate clients now keeps their event attendance

Merging two records for the same person used to lose their event history. The attendance would come unattached from the record you kept and reappear on the roster under the duplicate's name — or, if neither record had an email or a phone number, the merge would fail outright and the duplicate couldn't be cleaned up at all.

Event attendance now moves to the record you keep, along with check-in times and attendance status, and the confirmation screen tells you how many event registrations are about to move before you commit to the merge.

A clear confirmation after paying for a form

When a form charges a registration or ticket fee, paying used to drop people back on a blank copy of the form with nothing to say whether it had worked.

Now the page they land on confirms the payment as soon as it is recorded and tells them they're registered. If the payment is still being confirmed, it says so and keeps checking. If they cancelled, or the payment window closed before it went through, the page says nothing was charged and offers a way to try again. The confirmation appears in the language the form was filled in.

Separately, submitting a public form no longer waits on the follow-up emails the organization has configured before showing the thank-you screen, so submitting feels quicker on forms that send several.

See exactly which of your DNS records we have found

Setting up your own sending domain means adding a handful of records wherever your domain name is managed, then coming back to us to check they worked. Until now, that check gave you one answer for the whole set: verified, or not.

That was not much help if you had added three records correctly and mistyped the fourth.

Each record now shows its own result. You can see which ones we have found, which ones we are still waiting on, which ones we have not looked at yet, and which one has a problem. If a lookup fails for reasons that have nothing to do with you, the page says that too, rather than leaving you to guess.

A few other things on that screen got easier:

  • Each record now says what it is for, so you can tell apart two records that sit at the same place and look almost identical.
  • The field labels name both of the conventions registrars use, so if your provider calls it "Name" rather than "Host" you are not left hunting for it.
  • The page tells you when it last updated, so an old result is never mistaken for a fresh one.
  • The records are laid out across the full width of the screen, so long values no longer wrap into a wall of text.

Surveys can now ask about the programme they belong to

If you attach a feedback form to one of your programmes, the form builder now offers that programme's own fields alongside your other questions — so a survey about Adopt a Family can ask about the things you already track on Adopt a Family, instead of making you retype them as new questions.

Answers to those fields are saved with the response and shown with their proper names when you read the results. They stay with the survey: they don't create or change the programme's service records.

Turn Cash App Pay off without disconnecting Stripe

If your organization added Cash App Pay to its donation page, you can now turn it off again from Settings → Integrations, next to the Cash App Pay status.

Until now there was no way back. Once Cash App Pay was active, the only way to stop offering it was to disconnect Stripe entirely — which also switched off card payments, bank transfers and payouts, and meant setting the whole account up again afterwards.

Turning it off only changes what donors see at checkout. Your Stripe account, your other payment methods and your payout schedule are untouched, and you can turn it back on whenever you like without waiting for another review.

Linking an event to a service now counts the people who already signed up

If you linked an event to a service after people had already registered, or after the event had already happened, those people never showed up in the service. The event showed its attendance as normal, the service showed nobody, and nothing told you the two disagreed.

That is fixed. When you pick a service on an event, everyone on the roster who counts as served is added to the service straight away, and their record is dated to the day of the event rather than the day you linked it. Switching an event from one service to another now moves the records across instead of leaving both services empty, and unlinking still clears them.

This matters most if you report to funders. Service records are what your people-served totals are built from, so any event you linked up after the fact was quietly reporting short.

Fixed: the invite button missing from Team Management

Some organization owners opened Settings, then Team, and found no way to invite anyone. No invite form, no pending invitations, and no way to change or remove an existing member. Nothing looked wrong: the page still listed the team and the counts at the top were right, so there was nothing obvious to report.

That is fixed. Owners and admins see the invite form, the invitations tab and the member controls again, and a slow or failing part of the page can no longer take those controls away with it.

If you were affected, you did not need to do anything. Your team and their roles were never changed, only hidden from you.

New organizations start in their own time zone

Every newly created organization used to start in UTC, whatever address it gave, until someone found the setting and changed it. Calendar feeds and reminders for a nonprofit in Rhode Island were stamped GMT+0000.

The sign-up form now works out the time zone from the address you enter and shows it right there, under the postal code, so you can confirm or change it before the organization is created. Existing organizations are not changed; you can set yours under Settings > Organization.

Permission column headers stay put while you scroll

The permissions grid is long: around twenty features across four sections. Once you scrolled past the top, the View, Create, Edit, Delete, Export and Manage headers were gone, and every row below was six unlabelled switches. Getting the column wrong there is the kind of mistake that hands someone access they should not have.

The action headers now stay pinned at the top while the grid scrolls under them, and the section row you are in (Core, Financial, Outreach or Operations) stays visible just beneath. On a narrow window the grid scrolls sideways as before.

One line per person on the event roster

On an event roster, a person who had registered once was listed twice: once as a heading and once again underneath with the same name, badge, email and phone. On events without timeslots that meant every single person, so a roster of twelve read as twenty-four.

Each person with one registration now gets one plain line with their status control and actions on it. People registered for several sessions keep the expandable heading that shows how many they attended.

Require two-factor for your whole organization, and stronger public forms

Two changes to how HumanixOS protects your data, both of which come up whenever a funder or a partner asks how you keep client information safe.

Require two-factor authentication for everyone

Two-factor authentication has been available to each person individually for a while. Now an owner can require it across the whole organization: go to Settings → Security and turn on "Require two-factor authentication".

Anyone who has not set up an authenticator app yet is taken to do so the next time they open HumanixOS, and then sent straight back to what they were doing. Nobody gets locked out, including the person who turns the setting on, so you can enable it without coordinating with your team first.

It is off by default, and leaving it off changes nothing: people can still turn on two-factor for themselves.

Better protection on public forms

Public intake forms are the one place someone who is not signed in can send you information, which makes them a target for automated junk submissions. They now carry two additional layers of protection that work quietly in the background: a hidden field that catches automated submitters, and a "confirm you are not a robot" check before anything is saved.

Real people filling in your forms will notice one extra checkbox. Kiosk forms, the ones you open on a tablet at your front desk, skip the checkbox entirely, since the kiosk link is already private to you.

And you can decide about that checkbox. We know it can be a real obstacle for some of the people your forms are meant to reach. In Settings → Security an owner chooses one of three things: always show it, never show it, or let each form decide. If you pick the last one, whoever builds a form gets a switch on that form, and new forms start with the check on.

Turning the checkbox off never leaves a form unprotected. The hidden field and the rate limits keep working whatever you choose.

See which service records came from an event

When people register for an event that is linked to a service, a service record is created for each of them. Until now those records looked exactly like ones a staff member typed in by hand, so there was no way to tell where a service's people had come from, or to check that an event had actually fed its service without comparing two screens.

The service page now has an Event column. It names the event a record came from, links to it, and is blank for records entered by hand. Filter on it to see everyone a particular event brought in, or sort to group them together. It is included in exports.

The event page shows the other side: next to the linked service, how many service records the event has produced. If that number is lower than the roster, a registration did not make it through, and now you can see it.

Sign-up fixes for Google and the People setup step

Clicking "Sign up with Google" before agreeing to the Terms of Service used to do nothing visible: the checkbox and its message were at the bottom of the page, below the email form. The checkbox now sits above both sign-up options, and a blocked click brings it into view.

On the "Participant / Customer Configuration" step when setting up a new organization, the list of people fields now includes Country, and there are switches for Organizations and Household / Family, the two related-record columns the People list shows. Both start on; you can change them later under Settings > Modules.

The Household row in Settings > People configuration now appears whenever the Household module is on, instead of only when Inventory is.

Leave rows out of an import before it runs

An import used to be all or nothing. If a spreadsheet had a totals line at the bottom, a few people you did not want on this pass, or a handful of rows that were quicker to drop than to fix, your only options were to import everything or to cancel, edit the file, and start the wizard over.

The final review step now shows every row in your file with a checkbox. Untick a row and it stays out of the import. Tick the box at the top of the page to skip or restore a whole page at once, and use the filters to see only the rows with problems or only the ones you have skipped. Row numbers match the lines in your spreadsheet, so a row you skip here is the row you would find in the file.

Validation problems are now listed row by row, with one button that skips exactly the rows that fail. Skipping them clears the problem and unlocks the import, so a file with three broken rows no longer holds up the other four hundred.

Before you commit, the review step and the Import button both say how many rows are going in versus how many the file had, so nobody imports 340 of 400 rows without noticing.

Week of September 14, 202641 updates

Fix a distribution, and find one again

Until now a distribution could only be created, fulfilled, or called off while it was still pending. If you picked the wrong family, the wrong item or the wrong quantity, the wrong record simply stood. Not any more.

Correct a distribution. While one is still pending you can change everything about it, including the items, or delete it outright if it was keyed by mistake and never acted on.

Delete one that already went out. The goods go back to the lots they came from, it stops counting toward what you have given out, and it leaves your list. It stays findable under the Deleted filter, so your records still show that it happened and who removed it. Use it when the hand-out did not happen, or did not happen the way it was recorded. If the goods really left and are not coming back, a stock adjustment is still the right tool, and the dialog says so.

Fix a quantity that was recorded wrong. Lower it and the difference goes back to the lots it came from; raise it and the extra comes out of stock. If there is not enough on hand, or the funding source it came from does not allow it, you are told why and nothing changes. Which item a line is for cannot be changed this way — for that, delete the hand-out and record it again.

On a distribution that already went out you can also fix the recipient, the service, the date and the notes without touching the stock.

The manage distributions page now tells you what happened. Clicking anywhere on a row opens it. It shows what was handed out and how much, who recorded, fulfilled, cancelled or deleted it, and why anything was called off. You can search by recipient, filter by status, service and date range, sort the columns, and page through your whole history.

Cancelling now asks for a reason, and shows it on the list afterwards.

Two fixes worth naming. Anyone with more than 200 distributions could not reach the older ones at all from this page. And you can now export the list to a CSV, which is the record a funder is most likely to ask for.

Funder-required fields no longer block an edit

If your organization is attached to a funding partner that requires certain client fields, you can now save a person without filling them all in first.

Previously any edit to an existing client was refused until every funder-required field had a value, so correcting a phone number could fail because an income bracket had not been collected yet. That was the wrong way round: the same person could be added missing all of those fields through the grid, an import or a public form with no warning at all.

Now the record saves, and we tell you which fields the funder still wants, both while you are editing and after you save. Nothing is refused, and nothing is hidden.

One place to say who you call at an organization

Every organization now has a single Contact on its detail page, and you set it in one place.

Click the pencil beside it and pick whoever you call: somebody already linked to that organization, or — for an office manager, a receptionist or a shared inbox who is not one of your people — just type their name, email and phone. Whichever you choose replaces the other, so the page never shows you two answers to the same question.

When the contact is somebody linked to the organization, their name, email and phone are read from their own record. Fix a number once and it is fixed here too, instead of going quietly stale in a copy.

Anything you had already typed into an organization's contact fields is still there, exactly as it was.

Tag your organizations

You can now tag the organizations you work with, and group them by whatever your team actually cares about: funder, referral source, coalition, neighborhood, site visit done.

An organization's type says what it is. Tags say what it is to you, and an organization can carry as many as you need.

  • Add tags while you are creating an organization, or any time afterwards from its page or straight from the list.
  • Filter the organizations list to one tag or several. Picking more than one shows everything in any of those groups.
  • Rename a tag once and every organization carrying it follows. Delete a tag and the organizations stay exactly as they were.
  • Give a tag one of eight colours so the groups you check most are easy to pick out.

A refund that does not go through gives the gift back

Card refunds happen the moment you make them. Cash App Pay and bank refunds do not — they can take days, and occasionally they fail, usually because the donor's card or account has since closed.

Until now a donation stayed marked refunded even when the refund had failed and the money had never actually left your balance. Your income was understated, your records disagreed with your bank, and a donor could have been told they were refunded when they were not.

Now, when a refund fails or is cancelled, the donation goes back to completed by itself. If part of a payment was genuinely refunded and another attempt failed, it is left alone and flagged for you to look at, because only you can say what that should be.

Take applications first, payment after approval

A form that charges can now collect the money after you approve the application, instead of at the moment someone submits it.

Choose "After you approve their application" when you set up the fee. Applying is then free. When you approve a submission we email the applicant a payment link in the language they filled the form in, and they have 24 hours to use it.

Nothing is registered until they pay. Approving says yes; the person, the service record and the event attendee are created when the payment arrives. Someone who is approved and never pays leaves no half-finished records behind.

The submissions list tells you who is waiting on a payment you asked for, separately from who started paying on their own and walked away. If a link expires or an email goes astray, resend it from the submission: the old link stops working, so nobody can be charged twice.

Denying an application also cancels its payment link, so a refused applicant cannot pay their way in afterwards.

Cash App Pay at donation checkout

Organizations whose Stripe account supports it can now offer Cash App Pay to donors, alongside cards and bank payments.

Turn it on from Settings → Integrations → Payments. Stripe reviews the request and the card shows you where it stands: active, pending review, or not available.

Cash App has its own rules about who may accept it, and it excludes several categories that nonprofits commonly register under, including charitable fundraising, civic associations and religious organizations. If your account is in one of those, the setting says so plainly rather than leaving you guessing. It is also available only for US organizations and US donors paying in US dollars.

Gifts paid this way are recorded as Cash App Pay, so your channel totals stay accurate.

Check people in session by session

If your event runs in sessions — a club fair then a workshop, a conference with breakouts, a class that meets weekly — you can now track who showed up to each one, without asking anybody to register more than once.

Every time slot gets its own check-in form. Add a second time slot to an event and we create a check-in form for each slot automatically. Open the "Session 1 Check-In" link on the tablet by the Session 1 door and that's it: everyone who checks in there is recorded as attending Session 1. Nobody has to pick anything from a list, and you don't have to build the forms yourself.

Registering once is enough. Someone who signed up for the event can check in at any session's door, and each one is recorded separately. Their original registration stays exactly as it is, so the next door still recognises them. Walk-ins who never registered are recorded against the session they walked into, which at a busy club fair is most people.

Registration forms now ask up front. When an event has more than one time slot, new registration forms include a "Which sessions will you attend?" question by default. You can remove it or switch it to single-choice, but it's there from the start instead of something you had to know to add.

Attendance is already broken down by time slot on the event's attendee view, so the numbers show up wherever you were already looking.

One thing to know: deleting a time slot doesn't delete its check-in form or any of the attendance recorded through it. The form stays as an ordinary event check-in form and keeps its submissions.

Charge a fee on a registration form

A public form can now collect a registration fee or ticket price. Turn it on from the form builder: set an amount, and optionally what the payer is buying.

Nobody is registered until the payment goes through. The form saves what they typed, sends them to a secure payment page, and only creates the person, the service record and the event attendee once the payment is confirmed. An abandoned payment never adds anyone to your rosters or your service counts.

While someone is paying, their place is held, and somebody else cannot be sent to checkout for the same last seat. If they abandon the payment the seat frees up on its own within half an hour, so a time slot is never blocked for long by a payment nobody is making.

Payers see the fee and any processing charge as separate lines before they confirm, so the total is never a surprise. On the submissions list you can see who paid, who started paying and walked away, and who was refunded, which means you can answer "I already paid" with something better than a guess.

Registration income is kept entirely separate from donations. It never appears in donor giving totals.

Paid forms use the same payments account as donations, under Settings → Integrations.

People who register themselves now count as served

When someone registered for an event linked to a service through one of your public forms, they were never recorded as having received that service — so they didn't appear in your people-served numbers or in anything a funder sees. Registrations added by staff counted; self-registrations quietly didn't.

That's fixed. From now on a public registration for a service-linked event creates the service record the same way a staff-added one does.

Two things to know:

  • Your numbers will go up. Organizations using public registration on service-linked events will see people-served rise from here, because registrations that should always have counted now do. That is the correct number; it's just visible.
  • Past registrations are not changed. This applies going forward. Earlier self-registrations that were never recorded stay as they are.

If a service record ever fails to be created during approval or check-in, the screen now says so instead of showing plain success.

Send campaigns from your own email address

Your email campaigns can now go out from your own domain instead of a HumanixOS address, so supporters see your organization's name in the From line.

Beyond looking right, this matters for deliverability. Mail sent from an address at a domain you have set up is far less likely to land in a spam folder, because receiving services can confirm the message really came from you.

Setting it up. Go to Settings, then Sending domain. Enter your domain, and we will show you a short list of records to add wherever your domain name is managed. If that is not something you handle yourself, this is the point to forward the page to your IT contact. Records usually take effect within an hour, and the page updates on its own once everything checks out.

A tip if your organization uses Google Workspace or Microsoft 365: add the new records alongside your existing ones rather than replacing anything. Replacing a record you already have can stop your staff email from working.

If something breaks later. We check your records every day. If they ever stop working, your campaigns automatically keep sending from your HumanixOS address and we send you a notification so you know to look. Your email never stops going out.

Once your domain is set up, each campaign has a From name and From address you can set in Campaign Details. Leave the address blank and that campaign sends from your HumanixOS address as before.

Accurate form submission counts

The forms list now shows correct submission, pending, and needs-review counts no matter how many submissions a form has collected. Forms with more than a thousand submissions previously capped out and under-reported these numbers. The list also loads faster, since the counts are now tallied in the database instead of by pulling every submission back to compute them.

Count sheets no longer list a row that isn't there

An inventory count sheet was adding one extra countable row to every item that has variations — a row with a blank variation, a system count of zero, and its own box to type into. On a catalogue with 46 such items that was 46 rows of fiction, mixed in among the real ones.

It mattered more than the clutter suggested: a number typed into that row put stock on a variation that doesn't exist, and there's no way to move it back off. Now an item with seven variations gives you seven rows.

Two related improvements to the sheet:

  • A legacy item whose stock still sits outside its variations keeps that row, so the stock stays countable — it just sorts to the top of the item instead of hiding in the middle.
  • Each item's rows are now grouped together and ordered by variation name, so the sheet reads in the order you walk the shelf.

Give the same items to many people at once

Handing the same thing to thirty people used to mean filling in the distribute form thirty times. Now you can do it once.

On the Distribute screen there's a new choice: one recipient, or many. Pick "Many recipients", build a list of the clients, households or organizations receiving the goods, set the items and quantities once, and everyone on the list gets the same delivery.

A few things worth knowing:

  • Each person still gets their own distribution record, so your reports, funder metrics and client histories look exactly as they would if you'd entered them one at a time.
  • The search window stays open while you add people, and anyone already on the list is marked so you can't add them twice.
  • Up to 100 recipients in one go.

If something goes wrong partway — you run out of stock, or one recipient isn't eligible — the deliveries that already worked are kept, and the list shrinks to just the people who still need serving, with the reason on each row. Pressing the button again finishes the job without giving anyone a second helping.

Pick sheets are still one recipient at a time, so a batch is always distributed immediately.

Attaching a mockup to a feature request works now

Adding an image to a feature request failed every time with "Failed to upload image", and it took the whole request down with it — the description you'd written stayed on screen but nothing was submitted, so the only way through was to remove the image and lose the mockup.

The place the images were meant to be stored had never been created, which is why no file worked: the size and the format were never the problem. Uploads now go where they should, from the dashboard and from the funding-partner portal alike.

And if an upload ever does fail, your request is filed anyway, without the image and with a note saying so — rather than being thrown away along with everything you typed.

Forms tell you where their translations are

When you publish a form, its French and Spanish versions are generated in the background and take up to a minute to land. Until now nothing said so — open the public link straight away and the form was English-only, with no way to tell whether waiting would help.

The forms list now shows what's happening. A form still being translated says "Translating" and updates on its own when it's done, so there's nothing to refresh.

Two cases that never resolved on their own now say so plainly:

  • On a trial plan, translations aren't generated at all. That form is now marked "English only", and the badge explains that upgrading and republishing adds the other languages.
  • If translation fails, the form says "Translation failed" instead of quietly staying in one language, and tells you to republish to try again.

A form that translated successfully shows nothing extra — there's nothing to report.

Searchable item picker, and clearer distribution choices

Three improvements to distributing inventory.

You can now type to find an item. The distribute form's item list was a plain dropdown you had to scroll — fine with twenty items, unusable with five hundred. It now works like the receive and purchase-order forms: start typing and it filters by item name or SKU. Out-of-stock items still appear in the list, greyed out, so "we don't carry this" stays distinguishable from "we're out of this", and each row shows how many are on hand.

Both distribution options are now explained. The form asks when stock should leave the system and offers "Distribute now" or "Create pick sheet" — but only the pick sheet was described, which meant the default option, the one that actually takes the stock, was the one with no explanation. Both now say what they do, including that distributing now takes the stock immediately and that correcting it afterwards means recording an adjustment.

A staged distribution says what it's waiting for. A pick sheet shows as "Pending" until someone marks it fulfilled. That badge now comes with a plain statement that nothing has left inventory yet and that the stock is still counted as on hand — so a pending distribution no longer looks like something that went wrong.

An Involvement column on the people table

Your people table now has an Involvement column, saying what each person is to your organization — donor, volunteer, board member, alum, whatever you need. It's multi-select, because one person is usually several things at once.

It works in two halves, and the difference matters.

Donor and Volunteer look after themselves. If someone has a donor record, they show as a donor. If they're a volunteer, they show as a volunteer. These come straight from your donor and volunteer records, so they're always right and there's nothing to keep up to date — which also means you can't edit them by hand. A tag saying "Donor" next to someone with no donations would be worse than no tag at all.

Everything else is yours. Board Member, Staff, Alum and Community Partner are there to start with, and you can add, rename or remove options like any other field. These you fill in yourself.

Both halves work together everywhere: filter by "donors or alumni" and you get both groups, filter by "donors and board members" and you get the overlap, and the column exports with the rest of your data.

If you'd rather not see it, switch it off in the clients column settings like any other column — and if you've already customised or hidden the field, we left it exactly as you had it.

Merging clients who have received goods

Merging two client records failed with an error if the one you were merging away had ever received an inventory distribution — and confusingly, merging the same two people in the other order worked fine. That asymmetry made it look random.

It wasn't: the record of what that person had been given was still attached to them, and nothing moved it across. Now it does, and their delivery history ends up on the record you keep. If both people had received goods, both histories are kept together under the surviving record.

Typing a name on a delivery roster

When you add someone to a delivery who is not on file yet, the roster's Name box now takes a full name. It was quietly dropping the space as you typed, so "Dana Reyes" came out "DanaReyes" and had to be pasted in to get it right.

Two smaller fixes in the same place:

  • Taking a person off a delivery no longer disturbs the row you are typing in. Removing someone listed above an unnamed row used to move the cursor out from under you.
  • Each person's fields are now grouped under that person, so a screen reader says whose shirt size or shoe size it is asking for. Previously a family of five read as one long run of identical labels.

Duplicate scan finds same-name records with nothing else filled in

Two client records with the same name and no phone, email, address or date of birth on either one were never flagged as possible duplicates — the scan had nothing to corroborate the name with, so it stayed quiet. Those are exactly the records most likely to be the same person entered twice.

They now appear in the duplicate scan, at a low confidence so they sort below matches that have real supporting evidence.

Records that share a name but genuinely disagree elsewhere — two different phone numbers, say — are still left alone. A field that contradicts is a reason to think they're different people; a field nobody filled in isn't.

SMS tells you when it isn't set up yet

Texting requires a one-time carrier registration before anything can send. Until now the app only mentioned that at the very end — you could name a campaign, write it, choose who it went to, press send, and only then get an error. Worse, on the per-client send screen the same news arrived after the send had already failed.

Now the SMS screens say so up front, and point you at the setup page:

  • The campaigns list shows a notice while SMS isn't ready, and your existing drafts stay where they are.
  • Starting a new campaign shows the setup step instead of a composer that can't send.
  • The send-a-text window says so when it opens, and the Send button stays disabled with a visible reason.
  • If your registration is already with the carrier, it says that instead — and if the carrier rejected it, it tells you why.

We also corrected how long we said this takes. The app claimed 3–4 weeks in several places; carrier approval is usually a few business days, and up to about two weeks.

Unsubscribe links now work, and email stats are real

The Unsubscribe link at the bottom of your email campaigns did not work. Anyone who clicked it landed on a HumanixOS login page instead of being unsubscribed. That is fixed.

Clicking Unsubscribe now opens a simple page that shows which organization the emails are from, and asks the person to confirm with one button. Gmail's own "Unsubscribe" button at the top of a message works too.

Three other things change with it:

Your open rates were always zero. Not because nobody opened your emails, but because the tracking never reached us. Open counts on the campaign page will start moving. Numbers from before today are not comparable, so treat this as a fresh start rather than a sudden improvement.

People who unsubscribe are now always excluded. Previously a campaign only checked the unsubscribe list at the moment you chose your recipients. If someone unsubscribed while your campaign sat in drafts, they could still receive it. Every send now checks again at the moment it goes out.

Emails to addresses that no longer exist are stopped automatically. When a mailbox has been permanently closed, that address is removed from future sends for your organization. Temporary problems, like a full mailbox, are not treated as a permanent removal.

If a campaign ever fails to send, it now stays editable so you can fix it and try again, instead of being stuck.

Confirmation prompts now match the rest of HumanixOS

When HumanixOS asked you to confirm something, a few places still used your browser's own pop-up: a grey box with your web address at the top and buttons that were always in English, even if you use HumanixOS in French or Spanish.

Those are gone. Every confirmation now appears inside HumanixOS, styled like the rest of the app and written in your language. This covers deleting a transaction, archiving a message template, removing a grant task or team member, deleting an opportunity, deleting a purchase order, deleting a saved dashboard, and changing the details you record about family members on a service.

The warning you see when you change service member fields also reads better. It used to repeat the same explanation once for every field you changed. Now it lists the fields you are changing, tells you once what will happen to the information already recorded, and uses the names you gave those fields instead of their internal ones.

Nothing about what these actions do has changed. If you were happy clicking OK before, the new buttons do exactly the same thing, and cancelling still leaves everything exactly as it was.

What counts as a person served

We've written down what the "people served" figures on your funder dashboard actually measure, because the wording was doing you a disservice.

A person counts from the moment they are registered for a service — whether or not you separately recorded attendance. That's deliberate: for a food box reserved or a clinic slot held, the registration is the delivery, and it means two organisations' numbers can be compared even when one takes attendance and the other doesn't.

The tooltip used to say "how many actual people were served", which claimed more than the number could support. It now says what the number counts.

One change to the figure itself: someone on a waitlist no longer counts as served. They were waiting precisely because there was no place for them, so counting them was never defensible. Existing records aren't altered — a waitlisted person stops counting the next time their status changes.

If you do check people in, that's still recorded on every attendee, and we can report on observed attendance rather than registrations when you need it.

Record the stock you already own

Setting up inventory used to mean pretending your shelves were empty. The only way to get a count into HumanixOS was to receive the goods, which recorded an arrival that never happened, and colours and sizes could not be set up until something had arrived.

Four things changed.

Say what you already have. An item with nothing on hand now offers to record an opening balance. It goes into the ledger as exactly that, so a year from now the count you started with still reads differently from stock that turned up unexplained.

Set up variations before the goods arrive. You can add, edit and remove an item's colours, sizes and other variations from the item page, whether or not any stock exists yet. You can still correct a variation's values after stock has arrived, which is how you fill in a blank you could not answer at the time. A variation that holds stock cannot be deleted, because your records point at it.

Choose the shape of each item. When you create an item you now say whether it is one simple thing with one count, or something that comes in variations. The same item type serves both, so a single donated coat and a rack of sizes no longer have to be set up the same way.

Free is now a price you can record. A cost of zero is accepted on items, purchase order lines and receipts. Blank still means the cost was not recorded, and zero means it cost nothing. For donated goods those are very different facts and both are worth keeping.

Event check-in forms accept submissions again

Check-in forms could refuse every submission with a red "Validation failed" message, even with the form set to receive submissions. Fixed — check-in submissions go through.

Check-in forms now have their own short setup: you choose which details to ask for — first name, last name, email, phone — and the form asks for exactly those. So if you only want a phone number, that's all anyone sees. A first name and at least one way to make contact are always kept, because that is what matching someone to the registration list needs.

If a submission is ever refused now, the message says which field needs attention instead of only saying that something failed.

And if someone checking in isn't on the registration list, the form offers a link to register for the event, instead of only offering to add them as a walk-in.

Events can have a date to be determined

You can now create an event before you know when it will happen. Tick "Date to be determined" and the event shows Date TBD wherever it appears — the events list, the event page, and the check-in page attendees see.

While the date is undecided, HumanixOS holds back anything that would announce it. Reminder emails and texts are not scheduled, the event stays off connected Google and Microsoft calendars, and it does not take up a slot on your calendar view. Set the real date and the reminders are scheduled and the calendar entry appears.

A TBD event also stays in your "Upcoming" list rather than being treated as finished, and people can still register for it.

Events with timeslots are unaffected — those already carry their own times.

Recording details for each person in a family, without typing their names again

If you run a programme that records something different for each person in a family, a shirt size, a shoe size, a gift request, this is the change you have been waiting for.

The details step now starts with the family you already have. Previously, attaching a family to a service that records details per person took you to a screen that asked who was in the family and offered empty First Name and Last Name boxes, for people you had created a minute earlier. Whatever you did next was wrong. Skipping left the record with nobody on it. Filling it in created a second copy of children the app was already holding, as plain text with no connection to their records.

Now the step lists everyone in the family by name, head first, ready for you to fill in. Nobody retypes a name. Each set of details belongs to a real person, which means you can follow the same child across two years of a programme for the first time.

Correcting a family's details is safe now. The Edit details panel used to open empty for any family you had entered by hand, and saving from there replaced the whole list. A family of five could become a family of one, with a success message and no warning. It now opens on the whole family with whatever was recorded already filled in, tells you how many people the save will list, and names anyone you are about to take off the record before you save. Saving updates the grid, the panel and the family's own page straight away.

If someone is not on file, you can still list them. Type their name on the row. It stays a name on that one record and does not create a person, which is exactly how the public registration form has always worked and continues to work.

Records made before this change are untouched. They display exactly as they did, and nothing has been rewritten.

A family's page stops claiming more than it knows. The services a family has received used to be captioned as who was in the family at the time, over a roster that might have been typed ninety seconds ago, sitting just below a members list showing different people. The caption is gone and the names come from the people's own records, so the two halves of the page agree.

Deleting a person works, or tells you something you can act on. Three fixes here. A person who headed a family you had already deleted could not be removed by any means the product offered, and the message told you to delete a family that was already gone. That is fixed: deleting the family now genuinely releases them. A refused deletion no longer shows a success message anywhere, on the profile page, the people list or the dashboard. And when a deletion is refused, you are told why, in words that name something you can actually do.

We now honor Global Privacy Control, and list every cookie we set

If your browser sends a Global Privacy Control signal, we now treat it as a request to opt out of the sale or sharing of your personal information.

In practice that means Google Analytics is not loaded at all for your visit, so no analytics cookie is ever written. You do not have to click anything, and we do not ask you to. When we detect the signal we show a short confirmation that we honored it, so you can see it worked rather than having to take our word for it.

The privacy policy's cookie section has also been rewritten. Instead of one paragraph saying we use cookies, it now lists every cookie we set: its name, what it actually does, how long it lasts, and whether it is ours or a third party's, grouped by whether it is strictly necessary, functional, or analytics.

Nothing changes for visitors who do not send the signal.

Permission checks now agree with each other everywhere

What a role was allowed to do could depend on which part of the app was asking. A button might be hidden while the underlying action would have been allowed, or shown and then refused on save. The clearest case was the Manager role, where three different answers were possible for the same question.

There is now one set of role defaults behind every check, in the app and on the server, so what you can see and what you can do always match.

If your organization uses a Manager role, its starting point is now the same as a Member's, and anything beyond that is granted explicitly in Settings → Permissions — where it was already configurable, and where it now takes effect consistently. Existing permissions you have set there are untouched.

We also fixed two narrower cases: a permission granted for a single record no longer opens the whole area, and a permission check that fails to load is now reported as "couldn't check" rather than shown as a denial on the Finance ledger.

One intake form for every program

You can now publish a single intake form that isn't tied to one program. People describe what they need in their own words, and you choose the program when you review their submission.

Until now a service form had to name its program up front, which meant publishing one form per program and asking applicants to sort themselves into the right one — before they know what they qualify for. If your paper application is one sheet covering everything you do, the form can be too.

When you create a service form you'll be asked how the program is decided: pick it now, or let staff decide when reviewing. A form that defers the choice always goes to your review queue, and the reviewer picks the program before approving. They only see programs they have access to.

Two things to know. A form like this can't include questions that belong to a specific program, because it doesn't know the program yet — add your own questions instead. And once a form has submissions, you can't change how its program is decided: the submissions already waiting were filled in under the old rule, so we ask you to create a new form instead.

Save a form as a template and reuse it next season

If you run the same form every year, you no longer have to rebuild it.

Any form can now be saved as a template. The template keeps the whole setup: every question, the layout, translations, branding, notification settings, approval behaviour and follow-ups. When the season comes round, open Forms → Templates, pick the template, and choose this year's event or program. You get a fresh draft form, ready to review and publish.

Event forms get the part that used to make this impossible. An event's questions belong to that specific event, so last year's form could never point at this year's. Creating a form from a template now matches those questions up by name, so a template built for last December's event works against this December's. If the new event is missing a question the template had, we say so rather than dropping it quietly.

New forms created this way always start as unpublished drafts, so nothing goes live until you publish it.

"Duplicate" has been replaced by templates. Duplicating a form used to copy most of its settings but not all of them, which meant a copy could look right and behave differently. Saving as a template copies everything, so that cannot happen.

The calendar's day panel now shows everything the month grid does

Clicking a day on the calendar could open a panel that was missing items you could plainly see in that day's cell — events were the ones that went missing, every time.

The month grid and the day panel were each working out which day an item belonged to in their own way, and the two answers didn't always agree. They now share one, so a day's panel lists exactly what its cell shows.

An event's day is also now the day in the event's own time zone — the same one its start time is shown in — so a late-evening event no longer drifts onto the following day for viewers in another time zone.

Where your logo appears

The top-left corner of your dashboard now shows the HumanixOS logo again, rather than your organization's. Your logo has not been removed and nothing you uploaded has been deleted.

Here is where your logo still appears, unchanged:

  • The header of your public forms
  • Your check-in pages
  • Forms and submissions you print
  • The header block of emails you build
  • Donation receipts sent to your donors

Those are the places your community sees, and your branding belongs on them. The dashboard is the tool you are working in, so it shows ours.

Two things follow from that. The size choice under Settings, Branding still works and still applies to your public forms and your emails, so it is worth setting if you have not. The "my logo is light-coloured" switch has been removed, because it only ever changed how your logo sat against the dark dashboard bar and has nothing left to do.

Uploading, replacing and removing your logo all work exactly as before.

Funder reporting counts every household delivery, everywhere

Programs that deliver to whole families — a food box, a holiday delivery, Adopt-a-Family — were counted in some places in the funding partner portal and not others. The organization list and the organization's own detail page could show different numbers of service records for the same organization, a delivery just recorded wouldn't appear until the next hourly refresh, and an organization whose whole program serves households could read as having no recent activity at all.

Every service-record figure in the portal now counts a delivery to a household exactly as it counts one to a person — the totals, the today/this week/this month counts, the per-service breakdown, the 30-day windows, the trend charts and their period totals, the last-activity date and the active-organization counts. A family that has been deleted stops counting everywhere at once.

People-served figures are consistent with that: a delivery to a family of six credits six people, once, however many times that family was served in the period — the trend chart now says so as well as the impact tiles.

Funding partners can set reporting schedules

Funding partners can now tell the organizations they fund when reports are due, instead of chasing them by email.

Under Reporting in the funding partner portal, set what is due and how often — monthly, quarterly, twice a year, annually, or a single date. Apply it to every organization you fund, or just one. Choose how much notice organizations get before each date.

Organizations are reminded automatically. Admins get a notification as a report comes due, and again if the date passes without it being marked as sent. Each reminder arrives once, not every morning until you act on it.

The partner's Reporting page opens with what is outstanding: who is overdue, and who has something coming up. Schedules you have set are listed underneath.

Dates count from the first one you pick, so a schedule starting on the last day of a month stays at month end rather than drifting.

Households named after the family

A household you have not given a name now shows up as the family it is, rather than as a headcount. Bridget Snead's household reads "Snead Household" instead of "Household of 4", on the households list, on the client and donor pages, in every picker, and on the family sheets you print.

Households you have named are untouched. What you typed always wins.

The word used is your own. If you have renamed households to Families under Settings, an unnamed one reads "Snead Family". If you call them Units, it reads "Snead Unit". So if you would like to see "Snead Family", set your label to Family and every screen follows.

Two smaller things worth knowing. The name follows the head of household, so changing who heads a family changes what it is called. And if the head has no surname on file, their first name is used instead, falling back to the headcount only when there is no name to use at all.

Searching the households list works the way you would expect too: type a surname and the family comes up, even though nobody ever named that household.

One family per row

The households page now lists one family per row instead of spreading them three and four across. On a normal screen you will see roughly three times as many at once, and finding a family means running your eye down a single column of names rather than hunting across a grid.

Everything that was on the cards is still there: who heads the family, how many people are in it and how many of those have their own record with you, how many children, a phone number, and where they are.

Click any heading to sort by it, and click it again to reverse. That replaces the sort menu that used to sit above the list, so the thing you sort by and the thing that tells you how it is sorted are now the same control.

One ordering has gone: sorting by newest or oldest. It ordered families by the date their record was created, which the page does not show, so the list would rearrange itself with nothing on screen explaining the new order. Families now open in alphabetical order. If date order is something you relied on, tell us and we will find a better way to offer it.

On a phone the list shows the family name and size, with the rest appearing as the screen gets wider.

Two fixes on services: edits that stick, and a people count that includes families

Two things on the services side were quietly wrong. Both are fixed.

Editing a second field on a service record no longer fails. If you changed a value on a record, waited for it to save, then changed a second value on that same record, the second change was refused with a message saying somebody else had modified the record. Nobody had. The value you typed was then taken back off the screen and had to be retyped after a page refresh.

The record keeps a version number so two people editing the same thing at once cannot overwrite each other. Your own save moves that number on, and the page was not being told the new one, so it kept presenting the old one and got turned away. It now holds whatever the server just wrote, so you can correct as many fields on a record as you like, one after another, without refreshing anything.

The protection itself is untouched. If a colleague really does edit the same record while you are working on it, you still get told, and your next edit will save normally instead of being stuck until you reload.

"People Served" on the services page now counts the families. It only ever counted individual clients, so an organization delivering mostly to families watched a number that never moved no matter how many families they added. A page showing thirty one service records could still read one person served.

It now counts distinct clients plus the size of each family served, which is exactly how your reports have always counted it, so the two finally agree. A family served three times counts once. Next to it is a new Families Served figure, because for a holiday delivery or a food programme the number of families is the headline.

Two smaller things came along with it. Families whose records were deleted are no longer counted, and the figures are now worked out across every service record you have rather than the first thousand, so they stay right as you grow.

Stock levels at a glance

Opening an item's stock used to mean scrolling past a card for every batch you had ever received before you could read how many you actually have. Now the panel leads with the answer.

You get the total on hand, then a short table: each variation, where it is stored, and how many. A pack of bibs that came in over four separate deliveries reads as one line saying eleven, not four lines you have to add up yourself.

Batch detail has not gone anywhere, it has just moved out of the way. It sits behind a Batch detail link at the bottom, and every batch still keeps its own cost, date received and expiry.

If your organization tracks expiry dates, batch numbers or serial numbers, that section opens on its own, because those details are the reason you are looking. If you do not record any of them, which is most organizations handing out food, clothing and supplies, it stays closed and out of your way. There is nothing to set up either way.

The items list is tidier too. The batch count next to each item is gone, since it was a bookkeeping number rather than something you needed, and the View button that opens the panel is still right where it was.

Week of September 7, 202638 updates

Put your contact details on your forms

A form could carry your logo, and nothing else that said who you are. That is a problem mostly on paper: someone is handed an intake form, takes it home to fill in, and the sheet gives them no way to ask a question or return it.

Your forms can now show your organization's phone number, email address, postal address and website. Open a form's Style tab and turn on Contact information. Choose which of the four to show and whether they sit under the logo or below the last question.

The details come from your organization's record, not from the form. Change your phone number once in your settings and every form that shows it updates. A field you have not filled in is simply left off rather than printed as an empty line.

They appear on the web version, on the printed and PDF version, and on check-in forms. On screen the phone number and email are tappable. On paper they print in the header, next to your name and logo, where a "return this to us" line belongs.

This is off for every existing form. Nothing you have already published starts showing contact details until you turn them on.

Delete any form from the list, and see it go

Only draft forms could be deleted from the forms list. Once a form was published, the option disappeared, and the only way to remove it was to open the form and find a delete there.

Every form can now be deleted from the list, published or not.

Because deleting a form also deletes the responses people submitted to it, the confirmation now tells you exactly what you are about to lose. If a form has responses, it names how many and asks you to tick a box confirming you understand they go too. A form with no responses deletes in a single step, as before.

If you would rather keep the responses and simply stop accepting new ones, deactivate the form instead. That option has not changed.

We also fixed a smaller annoyance: deleting a form from its own page used to send you back to the list with the form still sitting there until you refreshed the browser. It disappears immediately now. The same applies to activating or deactivating a form, which previously left the old status showing in the list.

Deleting is available to team members whose role allows it, which was already what the system enforced behind the scenes.

International phone numbers keep their country code

A phone number entered with a country code was losing the plus sign when it was saved. A UK number written +44 20 7946 0958 was stored as 442079460958. All the digits were there, but the number was no longer in the standard international format, and there was nothing left to say which country it belonged to.

Numbers entered with a country code now keep it. Numbers entered without one are stored exactly as they always were, so nothing already in your records changes.

This also fixes text messaging to people outside your own country. When a client record says which country they are in, messages are addressed using the proper international format. When it does not, we send the number exactly as you stored it rather than guessing a country for it.

Extensions still work the same way. They are kept with the number on the record and left off when a text message is sent, since a text cannot dial one.

Turn someone you serve into a volunteer

People an organization serves often volunteer for it too. A pantry client helps at distributions; a program graduate mentors the next group. Until now the software treated them as two unrelated strangers, so staff retyped a name, email and phone number already on file and ended up with two records that never referenced each other.

Client records now have a Make Volunteer action. It sends the person your usual volunteer invitation, already filled in from their client record, and they set up a volunteer account the same way anyone else does.

The two records stay connected afterwards. That connection is the useful part: it lets you answer how many of your volunteers are also people you serve, which is exactly the kind of participation story a funder asks about.

The button tells you where things stand. If someone is already a volunteer, it says so instead of offering to create a second record. If you have already invited them and they have not finished setting up, it says that too.

One limit worth knowing: a volunteer invitation is sent by email, so a client with no email address on file cannot be invited yet. The button explains this rather than disappearing. Add an email to their record and it becomes available.

The action only appears for staff who can create volunteers, and nothing from the client record is visible to the volunteer or to anyone else on the volunteer side.

Postal codes outside the US now import correctly

If you imported clients with Canadian, British or any other non-US postal codes, they were being rewritten. A Canadian code like K1A 0B1 was stored as 00101, and a London postcode like SW1A 1AA became 11. Worse, the import preview showed the code unchanged, so there was nothing to tell you it had happened.

The cause was that we read every postal code as a US ZIP. US codes are always five digits, and spreadsheets drop the leading zero from codes like 02906, so we restore it. Applied to a code with letters in it, that repair produced nonsense.

Client records now have a Country, and postal codes are read by the rules of that country. You can map a Country column when you import, and rows without one use your organization's own country, so a Canadian organization's files work with no extra setup.

Non-US codes are now stored exactly as you provide them, with no letters stripped and no digits padded. US codes behave exactly as before, leading zeros and all. The import preview shows the value that will actually be saved, whichever country it belongs to.

Provinces, counties and other regions also pass validation now. Previously only a US state was accepted, so a Canadian address could fail before it ever reached the point of being stored.

Put donated goods on the shelf from the gift itself

A gift of goods can be recorded in two places, and they mean different things.

Recording it under Donors — from the Add Donation dialog or a donations import — captures the donor, the value and a description of what was given. It never adds anything to your inventory. That is deliberate: most in-kind records are history, and the coats and canned goods in them were handed out long ago. Putting them on the shelf now would inflate what you appear to have on hand and everything that reads from it.

Receiving it under Inventory — or importing items with a Donor Name column — is how goods that are actually in the building get counted. That path creates the donor, the gift and the stock together, so the donation and the shelf agree.

What was missing was the connection between the two. If you recorded a gift first and the goods are still on hand, an in-kind donation with nothing received against it now offers Receive these goods into inventory. It opens the Receive form with that gift already chosen, so the stock lands with its donor attached and the gift's goods list fills in. The link only appears for people who can receive inventory.

The import field help for fair market value and "what was donated" now says the same thing, so a file of gift history is not mistaken for a stock count.

Imports pick the best column match, not the first one

When your file had two columns that could both fill the same field, the importer handed the field to whichever came first — even when a later column was the obvious right answer.

A file with "Family Size" before "Household Size" gave the field to Family Size on a loose resemblance, and left the column that matched exactly with nowhere to go. The same happened with "Home Phone" ahead of "Phone Number", and "Birthday" ahead of "Date of Birth". Moving the columns around in your spreadsheet changed the result, which is not something you should ever have to think about.

The importer now gives each field to the column that matches it best, wherever that column sits in the file. A column that loses out is only auto-mapped elsewhere when another field clearly matches its name; otherwise it is left for you to place, as before.

Fixed buttons that stopped responding on long pages

On pages with a lot of fields, the buttons in the bar at the top of the page could stop responding. Saving a new service was the clearest example: you filled everything in, clicked Create, and nothing happened at all. No error, no message, nothing. Reloading the page was the only way out, and it lost everything you had typed.

The cause was the page quietly sliding underneath the bar along the top of the screen, which left the buttons behind it. They were still drawn on screen and looked completely normal, which is why it was so confusing. The more fields you added, the more likely it was to happen, so a page could work when you started and stop working part way through.

Those buttons now stay put and respond every time, on every page and in the funding partner portal.

Import your stock, not just your catalog

The inventory import used to load only your item list. Quantities had nowhere to go, so an organisation could import five hundred items and then had to receive every one of them by hand.

Now a row with a quantity brings its stock with it. Nothing in the file has to say which kind of file it is — each row is read on its own:

  • A row with no quantity adds the item, exactly as before.
  • A row with a quantity adds the item and puts the stock on the shelf.
  • A row whose SKU you already have receives the stock onto that item instead of complaining about a duplicate.

That last one means the same import works for a first load of the whole warehouse and for the delivery that arrived this morning.

A row can also say where its stock came from. Name a donor and the import records it as a gift in kind — creating the donor, the donation and the receipt together — so donated goods show up in your giving history instead of appearing from nowhere. Rows can carry a received date, a unit value, an expiry date and a lot number. A quantity with nothing else said is recorded as an opening balance: neither bought nor donated, because guessing either would put a number in your reports that nobody entered.

Rolling an import back removes the stock it created along with the items. Anything you have since distributed, counted or moved is left alone, along with the item it belongs to.

When your file is missing something

Imports used to stop dead when a required column was missing, and fail row by row when a column was there but some cells were empty. Either way the only way forward was to leave, fix the spreadsheet, and start over.

The mapping step now tells you what the import still needs and lets you answer it there. Choose a value to use for every row that has none — an item type picked from your own list, for instance. For SKUs you can have them generated from the item name, so "Pasta (16oz box)" becomes PASTA-16OZ-BOX, with repeats numbered.

A value you supply only fills the gaps. Any row that already has its own value keeps it.

Record details for each family member, however the family reaches you

If you run a programme that serves whole families, you can now set up what you record about each person on the service itself, and record it whether the family applied online, phoned, or walked in.

Before this, those questions lived on a public form. That worked if a family filled one in, but it left a gap: a family you took over the phone had no way to have a child's size or a dietary need recorded at all, and there was no screen anywhere that could add it afterwards. A note typed during an intake call was also permanent, because nothing could correct it.

Three things change.

You set the questions up on the service, under a new Family members tab in the service configuration. They repeat for each person in a family, so an age, a size, a grade or a dietary need belongs there, while anything the whole family shares stays on the service's own fields.

Any public form attached to that service now asks exactly those questions. There is one list, in one place, so a form and the programme behind it can no longer drift apart.

You can record a family's details when you add them to a service, or add and correct them later from the family's entry. Skipping is fine: the family is added either way and the details can follow.

Two smaller improvements come with it. Printed sponsor sheets and the family view now use your own wording for each question instead of a tidied-up version of the field name, and the questions appear in the order you arranged them.

Reports for services delivered to families

A service delivered to families or to partner organizations could not be reported on. The Create Report button was there, and pressing it produced a report with nothing in it.

Reports were built only from the people on a service. A family and a partner organization are recipients in their own right, so a holiday delivery programme that had served six families looked, to the report, like a programme that had served nobody: no rows, no charts, and an AI summary that dutifully described a service nobody had used.

Reports now cover every kind of recipient.

  • The number of deliveries matches what the service page shows you.
  • People served counts the people in each family, using the family size you recorded. A family served twice is counted once toward people and twice toward deliveries.
  • Families served and organizations served are shown alongside it.
  • Family sizes are the figures recorded now, which the report says on its face, so a figure read months later is not mistaken for a figure as at the delivery.

Where a report cannot answer something, it now says so instead of leaving a blank. A family has no address of its own, so a family programme's report states that it cannot be broken down by location rather than showing an empty chart that reads like a finding. The same applies to the figures that only make sense for individual people: a rate per person is left out of a family programme's report rather than shown as zero.

Two things changed for reports that only cover individual people, both because the numbers were not matching the report they sat on. A report's headline figures are now counted from the same set of records the report saves, so they can no longer disagree with the rows underneath them. And a record with no date on it now stays inside a report you have given a date range, instead of being dropped from the count while still appearing in the list.

The AI summary follows the same rules. It is told who the service reached and in what numbers, it is told which questions the data cannot answer, and it is told not to describe them. Nothing about an individual family member reaches it: what it receives is how many members were recorded and how many have each detail filled in, never a name, never a size, and never anything anyone typed in a notes or wish-list field.

Service counts now include families and organizations

The services list only ever counted the people you serve one at a time. Services delivered to a whole family, or to another organization, were left out of the numbers.

The clearest case was a service where every recipient is a family, like an Adopt-a-Family programme. The list said it had no recipients at all, while opening it showed six families and twenty-four people. Deliveries to organizations were missing in the same quiet way, which made some services look slightly smaller than they were.

Every kind of recipient is now counted, so the list and the page for a service agree with each other.

The figure next to each service is also named more clearly. It counts entries rather than people, because a person you serve twice is two entries, and an entry can now be a whole family.

The head of the family counts

When a service page showed a family's roster, it left out the head of household.

The people in a family each have their own record, but the head of the household does not have a second one — they are on the family itself. The service page was reading only the member records, so the person whose name and phone number are on the delivery was missing from the roster, and the count of who was on file came out one short of what the family's own page said. A family of Maria, Ana and Luis printed a sponsor sheet listing two people, neither of them Maria.

The head now leads the roster, marked as the head, on the service grid, the family panel and the printed sheet. A family entered with only a head is a roster of one instead of an empty one.

This applies to families whose roster comes from their current records. A family that registered through a public form still prints exactly what they registered with, unchanged.

Put split stock back together

When you open an item's lots, the panel now starts with the total on hand and how many batches it is spread across. If the item comes in different variations, each one gets its own subtotal with its batches grouped beneath it. Receiving the same thing twice at two prices creates two batches, which is right — each keeps its own cost — but the total now says so plainly instead of leaving you to add the cards up.

If you received the same product twice and filled in a detail like condition or size differently — or left it blank one time — the two ended up counted as separate variants, and your stock screen looked like the new arrivals had not joined what you already had.

Two changes fix that.

While you are receiving stock, each line now tells you where it is going: either "adds to" an existing variant with its current count, or that it will create a new one. If the item already has stock, creating a new variant is flagged, so you can match the existing details instead of starting a second pile by accident.

For stock that already split, an item with more than one variant now has a Combine variants button. Choose which to move and where it should go, and everything folds together. Each batch keeps its own cost, date received and expiry, so your valuation and reports are untouched — only the way the stock is grouped changes. If the two variants genuinely differ, you are warned before anything moves.

Settle duplicate SKUs before an item import runs

A SKU can only be used once in your organization, so importing a catalogue that reuses one always failed those rows. That was easiest to hit by re-running a file you had already imported, or fixing a few rows and uploading the whole thing again.

The import now checks before it writes anything. If any row's SKU is already in use, the last step of the wizard lists just those rows and asks what to do with each one: type a new SKU yourself, or press Generate to be given an unused one. There is a Generate for all button when the whole file needs it, and the import waits until every clash has an answer.

It also catches a file that uses the same SKU on two of its own rows, which nothing warned about before. The first row would import and the second would fail on its own, with no sign the two were related.

Rows that are fine are left exactly as they are, and nothing is written until you press Import, so the file lands in one go instead of half now and half after a second attempt.

See the whole family on a service page

Services that serve families now show families.

Until now, a family on a service page borrowed the columns built for one person. A complete family record looked like a half-finished client record: the ID column read "Household of 4", and columns for things a family does not have, like a date of birth or a gender, sat empty. The people in the family were not on the page at all. The only way to see who was in a household was to print the family sheets.

Now a family gets its own columns: the family name, how many people are in it, how many of them are on file, and who they are. Click the members to open the full roster, with everything that was recorded for each person at registration. On a service that only serves families, the columns that only make sense for an individual are no longer shown at all, and the contact details are labelled as the head of household's, because that is whose they are.

A few smaller things on the same page:

  • The recipient picker opens on Households for a service that serves households, instead of always starting on People.
  • The search box says what it searches, and searching now finds families by their name or by whoever heads them.
  • The summary no longer shows "0.0 avg" on a service with no individual entries. It shows how many families you are serving instead.

We also fixed the form for adding a new person from inside a household. Opened from a member row it was squeezed into a narrow column, with City, State and ZIP only a few characters wide, and it covered the household fields behind it. It now opens as a properly sized window. Choosing an address suggestion also fills in City, State and ZIP, which it had been quietly failing to do.

Family sheets name the family

Print family sheets used to say "No family members were listed on the registration" for any family you added yourself, rather than through a public form. That was wrong. The sheet only ever looked at the roster a registration form collects, so a family you entered by hand had nothing to show, and the page a volunteer is handed named nobody.

It now falls back to the people on file for that family. A family that registered through a form still prints exactly what they registered with, unchanged, because a sheet printed in December has to match what was agreed in November. Either way the sheet says which one you are looking at, so the two are never confused. The same roster now shows on the service page itself and in the family panel beside it, with the same label.

Three other things on that sheet. A family with no name of its own is now headed by whoever heads the household, instead of "Household of 2". The phone number is formatted the way it is everywhere else, so it can be read off the page and dialled. And the date is labelled, so you can tell a delivery date from the day the record was entered.

You can also set the delivery date now. Linking a family, an organization, or a person to a service asks you when the delivery is, instead of quietly recording the day you typed it in. It still starts on today, so nothing changes if that is what you wanted.

Organizations you serve were missing from service pages entirely. If you had linked an organization to a service, the page showed it as though nothing was linked, and the totals at the top left it out. They are back, and the counts include them. Families you had deleted were doing the opposite: still sitting on the service page and still counting toward the number of people served. They are gone now too.

Repeating events, clearer forms, and a preview that shows the real form

Events that repeat. When you create an event you can now say that it repeats: every week on the days you choose, or every few days, up to an end date you set. The dates are created straight away so you can see the whole run.

Building a multi-day event is no longer a chore. Dates can be typed as well as picked from the calendar, and editing a date no longer throws you back to the top of the page or loses your place in the field you were filling in.

The form preview shows your actual form. Every field used to appear as the same empty box, so a dropdown looked exactly like a text box. Now each one looks like itself: dropdowns list their options, dates show a date control, checkboxes show checkboxes, and section headings read as headings. The desktop preview also uses the full width instead of a narrow column.

Adding a question explains itself. Hover any question type to see what it does and what happens to the answer, including which ones save to a person's record and which stay on the form.

Your own consent wording. The consent checkboxes had fixed wording nobody could change. You can now write your organization's own text for each one, and section headings and consent notices support bold text and paragraphs.

Email a team member when a form comes in. Previously you had to type a colleague's email address by hand and keep it up to date. Now you can pick team members directly, and their address is always current.

We also removed the "New or existing" setting from forms. It never actually did anything, and every form has always accepted both new and returning people.

Register a whole family on one form

If your programme serves families rather than individuals, a public form can now sign up the whole household.

When you create a service form, you choose who receives the service: one person, or a household. Pick a household and the form asks how many people live in the home, and lets families list each person along with whatever you need to know about them, such as an age, a shirt size or a gift wish. You decide what those questions are when you build the form.

Approving one of these registrations creates the family, links it to the service, and keeps everything the family told you. Your reported numbers count everyone in the household, not just the person who filled in the form. If the same family signs up again next season, they are matched to the family already on file instead of being added twice, and each year's details are kept separately so last season's sizes never overwrite this season's.

There is a new Print family sheets button on the service page. It gives you one page per family with their contact details and everyone in the household, ready to hand to a sponsor or take out on delivery day.

Forms that sign up one person work exactly as they did before, and nothing changes for forms you have already built.

Call households whatever your organization calls them

If your organization says "families" rather than "households", the app can now say it too. Settings → Organization labels has a third row alongside Clients and Services: set the singular and the plural, save, and the word changes everywhere.

That means the sidebar, the list and detail pages, the New and Edit dialogs, the household section on a person's record, the households settings page, and the household wording inside Services, Donors and Inventory.

It also covers the one that matters most while you are typing from paper. A household with no name of its own used to read "Household of 4"; it now reads "Family of 4", or whatever your word is.

You can rename just the plural and keep the default singular, and clearing a box puts that word back to the default. Your own wording is never translated: if you call them "Familias", French and Spanish users see "Familias" too, while an organization that changes nothing sees the usual Household and Households in its own language.

Nothing else changes. Links, permissions and exports are untouched, so anything you have bookmarked keeps working.

See the family before you approve

When a family registers through a public form, the review screen now tells you what approving will actually do before you do it.

If the applicant is new to you, it says a new family will be created and how many people it will hold. If they have registered with you before, it names the family already on file and tells you the delivery will be added to it rather than starting a second one. When more than one family could be the right match, it asks you to pick, because guessing on your behalf is how duplicate families get made.

The submissions list beside it now carries the family too: the family name, how many people are in it, and each person listed with the answers they gave. Whoever is shopping or packing can work straight from the list.

Household pages got the same treatment. A family page now leads with how many people are in the household and how many of them have their own record, so a household of five with two people listed no longer looks like a mistake. It also shows where a delivery goes, taken from the head of the household's details, and the households list shows a phone number and town on every family.

Creating a service now has its own page

Setting up a service means naming it and defining every field it collects, and that deserves more room than a pop-up window. New services are now created on their own page, with the field builder laid out top to bottom and no scrolling inside a box.

Because it is a real page, you can share the link, use the browser's back button, and you will be asked before leaving if you have unsaved work. Duplicating a service and starting from a template both open the same page with the fields already filled in. After saving, you land on the new service.

Kiosk mode for public forms

Put a tablet or laptop on a table and let people fill in one of your forms one after another. Every thank-you screen now has a Submit another response button that brings up a blank form, keeping the language the last person chose.

For a device that will serve a whole line, turn on Kiosk mode in the form's settings and open the kiosk link it gives you. On that link the form looks after itself: the thank-you screen returns to a blank form after five seconds, a form someone walked away from clears after a short warning, the browser stops offering the previous person's name and address as suggestions, and the usual limit on submissions from one device is lifted to a kiosk-sized allowance.

Your forms list marks every form that is set up this way with a Kiosk mode badge, so you can tell at a glance which ones are running on a shared device.

Print a filled-out copy of any form submission

You could already print a blank copy of a public form for paper intake. Now each submission has a Print button too, on the form's page, in the review window and in the submissions list, which prints the same form filled in with that person's answers.

It is the same document, question for question: typed answers on the lines, the chosen options marked, dates and amounts in place, and the name of any uploaded file. Questions the person did not answer print blank, and questions they were never shown (because of an earlier answer) are left out. The top of the page shows your organization, the form's name, when it was submitted, its status and when it was reviewed, so the printout stands on its own in a case file or for an auditor.

If someone filled the form in Spanish or French, their copy prints in that language.

Search long filter lists, match on all values, and paste that keeps its blank rows

Filtering a column with a long list of choices meant scrolling through every one of them to find the value you wanted. Now, once a list runs past ten choices, the filter opens with a search box at the top. Type any part of a choice and the list narrows to what matches, accents and capitalisation aside, so searching for "garcia" still finds "García".

"Select all" now takes only what your search turned up, and says how many that is, so you can never select a thousand hidden choices by accident. Anything you had already ticked stays in view while you search, listed above the results under its own heading. Escape clears the search without closing the filter.

Columns that hold several values at once, such as a check-all-that-apply field, gained a Match setting. Any is what filtering has always done: tick three services and you get everyone in at least one of them. All is new: tick the same three and you get only the people in all three. Existing saved filters keep working exactly as they did.

Copying a run of cells down a column and pasting it into another column also lost its blank rows: the values closed up the gaps and landed against the wrong rows. Empty cells are now carried through the paste, so what you paste lines up with what you copied, right down to a blank row at the very end.

Your service data is now in the organization export

Exporting your organization's data produced a service records file with dates, statuses and identifiers, but none of the information your staff actually recorded against each service. Everything you had entered into your service fields was missing.

Those values are now columns in the file, one per field your services define, with the service name alongside so it is clear which service a row belongs to. The services file also lists the fields each service records.

The donors file had a separate problem that made it come back empty for every organization. That is fixed too.

Service record imports now carry your field values

Importing service records used to keep only the basics: the service, the client, the date, the status and a note. Everything else in the file, such as "Number of Turkeys", "Rent Payment" or "Program Type", was dropped without a word.

Those columns can now be mapped like any other. The mapping step offers the fields your services already collect, and the "Create field" button adds a new one to each service the import writes to. Values are checked against the field's type as they land, so a stray "many" in a number column fails that row with a clear reason instead of slipping through.

A file that identifies clients by their HumanixOS client ID, which is how our own export writes them, now matches those clients directly. Previously such rows all showed as unmatched.

Choose how large your logo appears

Settings → Branding now has a Small / Medium / Large choice for your organization's logo, with a preview of the dashboard header at each size. Square marks that looked lost in the header can now fill it.

Nothing changes until you pick a size: Medium is what you see today. Public forms that use your organization's logo follow the same choice unless the form sets its own size, and new email header blocks start from it too.

Get an email when someone submits your form

You no longer have to keep checking the dashboard to know a form came in.

  • In any form's options, turn on Email on submission and list the addresses that should hear about it, up to ten.
  • Every new submission sends a short email with the form name, when it arrived, and the submitter's name, email, and phone when the form collected them, plus a link straight to the submission.
  • The full set of answers stays in HumanixOS rather than in your inbox.

If an email cannot be delivered, the submission is still recorded as normal.

Funding partner dashboard loads for very large portfolios

If one of your grantee organizations serves hundreds of thousands of people, the funding partner dashboard could time out and show "We couldn't load your dashboard" instead of your numbers.

The headline counts are now read from the hourly precomputed figures plus whatever was added since, the city breakdown keeps the fifty largest cities per year instead of every one, and the trend charts no longer compete with the core numbers for the same time budget. The dashboard loads in well under a second for a portfolio of half a million people.

Import your inventory catalog from a spreadsheet

Inventory items can now be imported from a CSV or Excel file, the same way clients, donors and grants already are. Upload your catalog with SKU, item name and item type, plus optional description, barcode, retail value and cost.

The Item Type column is matched by name against the types you have set up, including the built-in ones. If a row names a type that does not exist yet, that row is flagged with the type it could not find, so you can create it and re-run the file. Nothing is invented on your behalf.

As with every import, you can undo it. Items you have already received stock against are kept, so an undo never removes something your records depend on.

Importing a contact list creates one organization per organization

Many of the spreadsheets you import are contact lists: one row per person, with the organization they belong to alongside their name, state and ZIP. Importing one of these used to go wrong in a few ways.

Imported as organizations, every row became its own organization, so an organization with thirteen contacts showed up thirteen times. Imported as people, the organizations were created once but as bare names, with no contact, state or ZIP. And one stray value in a date column could fail a hundred rows around it.

Now an organization import creates one record per organization name and combines the rows that repeat it, keeping the first contact on the sheet as the contact and filling in any blanks from the later rows. Rows that name an organization you already have are skipped and the existing record is left exactly as it was. A people import that creates organizations from its organization column gives each new organization the first person's name, email and phone as its contact and the row's address, state and ZIP. Importing a file as both organizations and people links every person to their organization.

A cell that is not a date is now flagged in the review step before anything is imported, and if a row still fails, only that row is reported. The rest of the file imports as normal.

Imports recognize more of your column names

Import files come with column headings like "Home Phone", "DOB", "Mailing Address" and "Postal Code". Many of those were not being recognized and had to be mapped by hand every time.

The matcher now treats underscores, hyphens and dots as word breaks, so a heading written any of the usual ways lands on the same field. We also added the qualified forms people actually export: home, work, mobile, cell and primary phone; email address; home and mailing address.

Your saved mappings from previous imports still take priority, so nothing you have already corrected will change.

Purchase orders show what was received, and drives show what they brought in

Receiving stock against a purchase order now records the link on the receipt itself. The purchase order page lists every receipt against it and shows a Received column beside each line's ordered quantity, so a partial delivery is visible at a glance instead of silently marking the whole order received. Marking the order received happens in the same step as recording the receipt, so the two can no longer disagree. A purchase order that stock has been received against can no longer be deleted.

The Drives page now shows, for each drive, how many receipts it produced, the total units received, and their fair-market value. Click the receipt count to see the individual receipts.

The receive form's item picker is now searchable by name or SKU, the same picker the purchase-order form already used.

See what each role can do before you assign it

Assigning a teammate a role used to mean guessing what that role could actually do. Now the answer is on the page.

  • When you invite someone, a short summary appears under the role picker: what the role is, and which areas it has full access to, can change, can only view, or cannot see at all.
  • In the team list, an info button next to each member's role opens the same summary for that person.
  • The summary reflects your organization's own permission settings, so if you have customized what Members can do, that is what it shows.

Admins get a direct link to the Permissions page from the summary to make changes.

Ask AI now tells you what went wrong

When a question in the dashboard's Ask AI box couldn't be answered, you used to see the same line every time: "Failed to execute search. Please try again." Sometimes trying again was the right move. Often it wasn't, and the message didn't say which.

Now the message matches the cause:

  • You've asked a lot in a short time — it tells you to wait, and for how long when we know.
  • The AI service is having a moment — it says so, and that your data is fine.
  • The question didn't land — it suggests naming what you're after, with an example.
  • Something broke on our side — it says that plainly, and that nothing was changed.

Slow answers also show a "Still thinking…" note so a long wait isn't mistaken for a failure. Every message is available in English, French, and Spanish.

The calendar now shows new and changed events right away

After creating, editing or deleting an event, the calendar and its selected-day panel could keep showing the old picture for up to five minutes, or until you switched tabs and back. The calendar now refreshes as soon as the change is saved. The same applies to service records, board meetings, scheduled email campaigns and grant dates, which all appear on the calendar.

Reports show what you actually recorded, and the report screen has room to breathe

Three fixes to reports this week, plus a bit more room to work in.

Your edits now show up in the report preview right away. If you changed something in the grid on a service page, a registration status or an amount, and then opened Create Report, the preview still showed the old values. Reloading the page fixed it. The report you generated was always correct, which made this an especially confusing thing to run into: the screen disagreed with itself, and the version you could see was the wrong one. The preview now keeps up with your edits as you make them.

Service reports no longer lead with a status almost nobody sets. Every report on a single service carried a "Status Distribution" chart reading 100% active, an "Active Rate" of 100%, and an AI summary that dutifully mentioned it. For nearly everyone that number was meaningless: there is no way to set the status of a person within a service from the service page, so unless you were using one of the few side routes that touch it, every row said active and the chart could only read 100%. The chart, the figure and the sentence are gone. Reports across several services no longer show an "Active" count either, for the same reason.

AI summaries now talk about your service data. A summary of a single service used to cover how many entries there were, how many people, and where they lived, and nothing about what your organization actually recorded. If you track a registration status, an amount handed out or a referral source, the summary said nothing about any of it. It now leads with those fields: how the choices break down, totals and averages for amounts, and the date range covered. Free text fields like notes are counted but never quoted, so what you write about someone stays between you and the record.

More room on the Create Report screen. The name, the summary, the options and the buttons were all crammed into one row, which left the summary box about the width of a word. A generated summary was in there, you just could not read it. The summary now gets a proper field several lines tall that you can drag taller, the buttons have moved up to the bar at the top of the page, and there is a labelled way back to where you came from instead of an unlabelled X. The people list has the same layout now, and opening either screen no longer jumps you past the charts section.

Linking people to a service is tidier. The Link People button sits on the top bar where it stays put while you scroll the list, the redundant Cancel button is gone since the back link does the same thing, and the heading that repeated the service name has been removed. That is a good chunk of the screen handed back to the list you are actually reading.

Week of August 31, 202643 updates

Add your own service categories for anonymous distributions

When you record an inventory distribution to an anonymous recipient, the service category picker offered six built-in options. Anything else had to go under "Other", which made funder reporting harder than it should be.

You can now add your own categories. Pick "Add a new category" at the bottom of the list, type the name, and it is saved for your organization and selected right away. Your categories also appear in the recall report and can be renamed or retired under Settings, Inventory, Categories.

The built-in list stays shared across organizations so cross-organization reporting remains comparable. Where a report compares organizations or an eligibility rule checks the category, a custom category counts as "Other".

Type numbers the way your language writes them

If you use HumanixOS in French or Spanish, numeric cells in the data grids already displayed decimals with a comma, as in 3,5. Typing that comma back into the cell, though, was refused with a "numbers only" message.

Numeric cells now accept numbers spelled the way your language displays them. In French and Spanish, 3,5 is three and a half, and a thousands separator (a space in French, a point in Spanish) is understood. In English, a thousands comma such as 1,234.5 is accepted too. Pasting a copied value, including one with a currency symbol, reads the same way.

Where a point in Spanish could be read either way, it is treated as a thousands separator only when it sits in the thousands position, as in 12.345. Anywhere else, such as 3.5, it is treated as a decimal point, so a habit of typing a point never silently produces a number ten times too large.

The grant finder now searches the web and only shows links it has checked

Research Grant Opportunities used to draw on the assistant's memory, which meant a link could point at a page that no longer exists or at a funder's homepage instead of the program. Every search now runs a live web search, and each link is checked before it is shown. If a page cannot be confirmed, the result appears with "No verified link" rather than a link that might be wrong.

Amounts and deadlines still come from the assistant's reading of the pages it found, so they carry a reminder to confirm with the funder. When a deadline has already passed, it is struck through with a note to check for the next cycle.

Recording a donation is faster, and reachable from the donors page

Recording a gift is one of the most common things you do in HumanixOS, and it was one of the harder things to reach. The donors page offered only "Add Donor", so recording a gift meant first noticing that Donations is a separate tab.

You can now record a donation straight from the donors page, next to Add Donor. It opens the same form, and the donor list and totals update as soon as you save.

The form itself is shorter. It asks for the giver, the amount, the date and the payment method, and everything else now sits under "More details", one click away. Fund, campaign, program, status, channel, notes and the anonymous option are all still there, still optional, and the section tells you when it is holding something. If you use those fields regularly it remembers that you like it open. Editing a gift always shows everything, so nothing is out of sight while you are correcting a record.

A few related fixes came with it:

Searching for a donor now looks across your whole donor list. Before, the picker quietly loaded only the first 200 donors and searched within those, so larger organizations could not find most of their donors and nothing on screen said the list was incomplete.

Opening "Record donation" from a donor's own page now shows that donor already filled in. It used to show an empty donor box even though it was recording the gift against the right person.

Recording a gift of goods now saves. In-kind gifts carry their value as a fair market value rather than a cash amount, and the form was being turned away for having no cash amount. It now saves as intended, and still asks for a fair market value so a gift of goods is never recorded as worth nothing.

If your organization has turned off Funds or Campaigns, the form no longer asks about them.

Offer event timeslots on a form, and let people check themselves in

One event can now run at several times, and people can pick the time that suits them.

Set the times up front. When you create an event you can add its timeslots right there, instead of saving the event and adding them afterwards. A single timeslot is filled in for you, so an event that runs once is no more work than before.

Put the real times on your form. A registration form linked to an event can now offer that event's timeslots. The list comes straight from the event, so there is no second copy to keep up to date, and a time you change or remove changes on the form too. Each option shows how many spots are left, and a full timeslot says so.

Both ways of checking in. Staff can check someone into the specific timeslot they registered for, and people can still check themselves in. Every check-in now records how it happened, and attendance that someone recorded for themselves is labelled, so you can see at a glance which attendance was observed by your team.

One person can register for several timeslots of the same event, which is what a weekly class or a multi-day workshop needs.

A roster you can read. Because one person can now hold several registrations, the attendee list groups by person: one line each, with their timeslots underneath. You can search it, narrow it to one timeslot, and filter by how much of it someone attended, including who came to every timeslot. The count above the list tells you how many people you have and how many registrations they hold between them.

Volunteer shifts follow the event. Creating a shift for an event now offers that event's timeslots. Pick the ones the shift covers and you get a shift for each, already set to that timeslot's time and place, instead of typing the same dates and addresses again.

Funder dashboard loads for very large organizations

Funding partners whose portfolio includes a very large organization (hundreds of thousands of clients) were seeing "We couldn't load your dashboard" instead of their numbers. The dashboard, the organizations list and each organization's page now load in a few seconds regardless of size.

Part of how this works: the demographic breakdowns, the service breakdown and the impact figures are now computed on a schedule, once an hour, instead of on every page view. The dashboard shows when those figures were last computed. An organization attached to your partnership since the last run is listed as pending in those sections until the next hourly refresh, rather than appearing with zeros. Activity, new-client counts, and organization summaries remain live.

Funding partners can now see delivery over time

The funding partner portal has a new Trends over time section, on both the main dashboard and each organization's page.

Until now every figure in the portal was a lifetime total, a single calendar year, or a this-week snapshot. That tells you how much, but not whether it is growing, when it happened, or which organization it came from.

What is new:

  • A chart of delivery over time. Pick any of the metrics you already see as tiles: service records, people served, value of goods distributed, items distributed, events held, or volunteer hours.
  • A period that matches your grant, not the calendar. Last 12 months, last 24 months, year to date, or your own start and end dates. Group by month, quarter or year.
  • A comparison across your organizations. Who delivered the most this period, what share of the total each represents, and whether they are up or down against the period before.
  • Export to CSV, so the numbers can go straight into a board memo or an annual report.

The period you choose is part of the page address, so you can send a colleague a link to exactly the view you were looking at, and it follows you when you click into a single organization.

Totals in the new section match the impact figures above them for the same window, including "people served", which counts each person once no matter how many months they appear in.

As always, the portal shows aggregate figures only. No individual client information is ever visible to a funding partner.

Funding partners can see how their organizations use the system

Alongside the new delivery trends, the funding partner portal now shows a How they use the system section on the dashboard and on each organization's page.

Delivery numbers say what an organization achieved. This says whether HumanixOS is actually part of how they work:

  • Active days and the typical gap between them. Steady weekly use and one big catch-up session can produce the same number of records, and they mean very different things.
  • Visits, counted whenever someone signs in and uses the system, whether or not they record anything while they are there.
  • People active, against how many accounts the organization has. One person carrying all the data entry is worth knowing about.
  • What they use it for, with a share for each part of the product and when it was last touched.
  • Switched on, but not used, listing features an organization has enabled and recorded nothing in during the period.

All of it respects the same period and grouping controls as the delivery trends, and exports to CSV.

Two deliberate limits. Where usage was never measured, the portal says so rather than showing zeros, because "we did not measure this" and "they stopped using it" are very different statements. And as everywhere else in the portal, these are counts only: a funding partner never sees who did what, only how many people were active.

The page toolbar no longer disappears on Link Clients

The sticky toolbar that sits at the top of every dashboard page was missing on two service pages: Link Clients and Service Templates. Opening Link Clients from a service made the toolbar vanish, which looked like a glitch.

Both pages now carry the toolbar, with a clear way back to where you came from.

More of the app now follows your language setting

If you use HumanixOS in French or Spanish, a number of screens were still showing English. This release closes most of those gaps.

The dashboard home tiles, the notification center, the email campaign area (the campaign builder, the automation editor, list filters and the new-campaign pages), the board portal tab titles, the integrations page, the import wizard's field list, and the pickers for team members and ledger accounts now render in your chosen language. Success and error messages in the grants, donors, forms and SMS areas are translated too, and the "delete saved block" confirmation in the email builder is now a proper in-app dialog instead of a browser popup.

Dates across the app now respect your language as well. Month and weekday names, "3 days ago" style timestamps, the auto-save indicator, and dates in exported spreadsheets used to come out in English, or followed your browser's language rather than the one you picked in HumanixOS.

The standard client field names (First Name, Date of Birth, ZIP Code and the rest) are now translated wherever they appear: table headers, the client profile card, the import wizard, exports, and the email editor. If your organization has renamed one of these fields, your own name is always shown exactly as you entered it.

As before, anything your organization typed in, such as campaign names, subject lines, saved views, category names, or custom field labels, is never translated.

Filtering by a multi-select field works again

Filtering a table by a multi-select field (a custom field where a record can have several options ticked) returned no rows at all, and the "Is empty" and "Is not empty" checks on those fields gave the wrong answer. Both are fixed on the People list, on organization record contact lists, and in generated reports.

On a service's client list, filters on the service's own fields were being ignored entirely, so the list stayed unfiltered no matter what you chose. Those filters now apply.

Filtering by a value that contains a comma or parentheses, such as "Food, Pantry (weekly)", also used to fail with an error. That works now too.

Service pages now explain why a page will not open

If you did not have permission to link people to a service, the page used to say the service could not be found. The service was there the whole time, and the message sent people looking for a missing record instead of asking for access.

Service pages now tell you what is actually happening:

  • If you do not have edit access, the page says so and tells you to ask an administrator.
  • If something went wrong loading the service, you get an error you can retry, instead of being told it does not exist.
  • While a service is still loading, you see it loading.
  • "Not found" now means the service really is not there.

The button that opens the client picker is also hidden when you do not have edit access, so you are no longer invited into a page that will turn you away.

Donation imports create donors for first-time givers

Importing gifts used to require that every donor already existed. A gift from someone new failed its row with "import your donors first", so recording a handful of donations from first-time givers meant adding each of them by hand before the file would go in.

Now a donation import creates a donor for anyone it doesn't recognise. Before it does, it checks your clients: if the giver is already a client, the new donor is linked to that client record instead of starting a second, separate identity for the same person. When someone gives more than once in the same file, they get one donor, not one per gift.

The import tells you how many donors it created and how many linked to a client, and that note is kept on the import record, so nothing appears without explanation. If you undo the import, the donors it created are undone with it.

Two things deliberately did not change. A gift naming someone that two of your donors already share still fails that row and says so, because choosing one of them would attribute the money to the wrong person and only you can say which was meant. And rows with no amount, the subtotal and placeholder lines that donor exports are full of, are still skipped rather than turned into donors.

If you are moving from another system and have a donor export, importing it first is still the better order. Donors created from a gifts file start with just a name, since that is usually all a gifts file carries.

Find your newest form, and read every answer

Two changes to the forms area, both from watching people use it.

Your forms list now starts with the newest. Previously the list led with forms that had submissions waiting, which meant a form you had just created could land near the bottom, below everything with activity on it. Now the most recently created form is first, so a form you just made is right where you expect it. If you liked the old order, it is still there under the Priority sort option, and whichever sort you pick now sticks with you as you move around instead of resetting every time you open a form.

Long answers are readable. Responses used to be cut off after a single line with no way to see the rest, which made long-form questions almost pointless. Answers now wrap onto several lines, longer ones have a Show more link that opens the whole thing, and questions that ask for a paragraph get more room on the page. Line breaks people typed into their answers are kept as well.

Sort your forms by service

If you run a lot of intake forms across several services, the forms list now has a Service sort option. Pick it and your forms group together by the service each one is linked to, in alphabetical order, with forms inside a service listed by name.

Forms that aren't tied to a service are gathered together at the end of the list, so nothing gets scattered. It's a small addition, but it makes finding every form for a given program much quicker.

Import in-kind donations, with their value and what was given

Gifts of goods and services can now come in through a donation import along with everything else.

Set the donation type to "In Kind" and map your file's amount column as usual. In-kind value is held separately from cash so that goods and money stay distinguishable, and the import puts it in the right place for you rather than making you know that. It says how many rows it moved. If your file keeps cash and fair-market value in separate columns, there is now a column for that too.

Donations of goods also carry what was actually given — "Gift basket and gift card for raffle", "four hours of legal advice". You can map it from your file's gift note or memo column, and it is there when you add an in-kind donation by hand as well. It shows with the gift, so a year later the record says more than a dollar figure. An amount with no description is not something you can write a thank-you letter from.

Type columns are also more forgiving now. "In Kind", "in-kind", "Credit Card" and "credit_card" are all understood, so a file exported for humans to read no longer has to be rewritten for us.

If your donated goods enter your stock and get handed out, keep receiving them through Inventory — that tracks items, quantities and per-unit values, which a donation record does not.

Number columns are easier to spot

If you have a column set up to hold numbers, it now looks like one. Numbers line up along the right edge of the column the way they do in a spreadsheet, so you can scan down a column and compare figures at a glance. Column headings for these columns are marked too, so you can tell what a column expects before you start typing in it.

There's one more change worth knowing about. A number column has always refused letters, but it used to refuse them silently, which made the cell look like it had stopped responding. Now, if you type a letter into a number cell, the cell tells you it only takes numbers. What you can enter hasn't changed at all, but you'll no longer be left guessing why nothing happened.

Importing organization records works again

Importing organization records from a spreadsheet was failing for everyone with a "you do not have permission" message, even for account owners. That's fixed — you can now import organization records as expected, and the import respects your organization's permissions like every other import.

Drag grant cards between columns

The grant opportunities board now works the way it looks like it should: drag a card from one column to another to change its status. Until now the board only grouped opportunities — changing a status meant opening the card's menu.

The grant pipeline board got the same treatment. Both boards now use one drag implementation, which means:

  • Dragging works on a phone or tablet. Press and hold the grip handle on the left of a card to pick it up, then drop it in another column. A plain swipe still scrolls the board, so you can browse without moving anything by accident.
  • It works from the keyboard too. Tab to a card's grip, press Space to pick it up, use the arrow keys, then Space again to drop.
  • The card moves right away, and slides back to where it started if the change doesn't save — with a message telling you what went wrong.
  • Clicking a card still opens it. The grip handle on the left of each card is what starts a drag.
  • Only people who can edit grants can drag. If your role is view-only, the boards look the same but the cards stay put.

One deliberate exception: on the opportunities board, the Promoted column doesn't accept drops. Promoting an opportunity creates a real grant in your pipeline, so it still goes through the Promote action on the card's menu.

Event custom fields now appear in event reports

If you collect extra information from event attendees — dietary needs, a t-shirt size, which session someone picked — that information now travels with your event reports.

  • One column per custom field, named the way you named the field, in the order you arranged it on the event.
  • Included in every export: CSV, Excel and PDF.
  • Visible in the report preview, in a table built for attendee rosters rather than the generic one it used to fall back on.
  • Available to charts. Ask for a visualization of an event report and the AI can now group and count by your own fields, using the field type you chose rather than guessing from the values.

A field you defined but nobody filled in still gets its column, so a gap in the data looks like a gap rather than a missing column.

Reports you generated before today keep working exactly as they did — they just don't have the new columns, because the information wasn't captured in them at the time.

One thing to know: event custom fields aren't covered by the report's "include personal information" toggle, which controls attendee names, emails and phone numbers. If a custom field holds something sensitive, that's worth keeping in mind when you share the report.

Fix an item's type before stock arrives

Picked the wrong type when you added an inventory item? You can now change it — as long as nothing has been received against that item yet. Open the item, edit it, and choose the right type.

Once stock has been received, the type locks for good. Everything on the shelf is described in terms of the type it arrived under — sizes, expiry dates, lot numbers — so changing it later would quietly rewrite your history. The edit dialog now says which of the two situations you are in, instead of only telling you the type is fixed.

Getting the type right matters beyond tidiness: it decides which category an item's distributions appear under in your reports and funder summaries.

The funder dashboard now tells you when it can't load

If something went wrong fetching your organizations' numbers, the funding partner dashboard used to show zeros and empty tables — which looks exactly like a portfolio that hasn't recorded anything yet. There was no way to tell "nothing happened" from "we couldn't ask".

Now it says so, and gives you a retry. If only part of the page is affected — impact, goods distributed, or organization activity — the rest still loads and a note names what's missing, so you know which numbers to trust.

Funding partner Team page now shows your whole team

The Team page on a funding partner account was only ever showing one person — you. Anyone else on the account was invisible, which also meant an owner had no way to remove a member they hadn't added themselves, and inviting a teammate who was already on the account failed with "already a member" while the page showed no such person.

The roster now lists everyone on the funding partner, for every member of it. If you do try to invite someone who is already on the team, the message points you at the Members list instead of contradicting it.

Households get their own home — and can now give

Households are no longer tucked inside Inventory. They now have their own place in the sidebar, their own on/off switch in Settings → Modules, and their own permissions — so your team can manage client families even if you never use inventory.

What's new:

  • A real household page. Click any household to see its members, their roles, custom fields, and quick links to each person's record.
  • Member roles. Every household member can be marked as a Guardian, Child, or Adult. Assign the guardian role to whoever fills it in that family — parents, grandparents, aunts and uncles. A child's guardians are always visible from their record.
  • Donations from a household. When recording a donation, you can now pick a household as the donor — perfect for joint gifts from spouses. The gift is counted once in your totals, shows up on both partners' donor pages as household giving, and thank-you letters address both names ("Dear Maria & José Rivera").
  • Household custom fields moved to Settings → Households, and keep working whether or not inventory is enabled.

Existing links to household pages keep working, and everything you already set up carries over automatically.

Organizations is available to every account

Signing up used to ask whether you serve individuals, other organizations, or both. That answer did one thing: it decided whether the Organizations area appeared in your sidebar — a question most people had no way to answer before they'd used the product.

The question is gone, and Organizations is now available to everyone. If you don't track organization records or corporate partners, you can switch the module off under Settings → Modules, along with anything else you don't use.

Accounts that previously had it hidden now have it available. If you had deliberately turned it off yourself, it stays off.

Client data now follows your permission settings everywhere

Permissions for client records are now enforced consistently, including when you ask the AI assistant.

Previously, a few places checked only that you belonged to the organization — so someone whose access to client records had been turned off could still reach that data through the assistant or a direct request, even though the buttons and menus were correctly hidden from them. The permission settings you configure now apply everywhere the data can be reached.

What this means day to day:

  • Finding and merging duplicate clients — including asking the assistant to find duplicates — now requires the same permission as merging them. If you can act on a duplicate, you can still find one; if you couldn't merge before, you'll now see a message explaining what access you need instead of results.
  • Exporting a client's record requires the export permission.
  • Viewing client lists requires the view permission.

Owners and admins are unaffected. The one real change is for roles that can't merge clients — managers and members by default: asking the assistant to find duplicates now returns the same answer the Find duplicates menu already gave them, which is that they don't have access. Anyone blocked now sees a clear explanation of what to ask an administrator for, rather than a generic error.

Link donations to the program they support

Donations can now be attributed to a specific service or program.

  • In-kind receiving: when you record received goods and create the donation on the spot, you can pick which program the gift supports. The link is saved on the donation record.
  • Recording a donation: the Record Donation form now has an optional service picker alongside Campaign and Fund, so cash gifts can carry the same attribution.
  • Where you'll see it: the Donations list and each donor's giving history now show the linked program.

The link is optional, and it never changes donation amounts or fair-market values — it's attribution only.

Duplicate scan now catches name changes

When someone comes back to you under a new surname — after a marriage, say — their intake form creates a second record rather than quietly overwriting the first. That is deliberate: rewriting one person's record with another's details is the kind of mistake that is very hard to undo.

The catch was that the duplicate scan couldn't see those pairs, because it never compared Social Security numbers. Two records for the same person with nothing in common but an SSN simply didn't show up.

They do now. If your organization collects SSNs, the scan on the clients page flags a pair whose numbers match exactly, tagged SSN, ready to merge.

The number itself is never involved in any of this: the comparison happens on the server against a one-way fingerprint, and no SSN — or anything derived from one — is ever sent to your browser or shown on screen. The badge tells you the two records agree, and nothing more.

One deliberate exception: Select all ≥ 90% skips pairs whose names don't match, so a matching SSN under two different names isn't swept up by that shortcut. Those pairs are listed like any other and you can tick them yourself, and if a bulk merge does include one, the confirmation step now tells you how many of the pairs you're about to merge carry two different names.

Exact matches now take priority in client matching

When HumanixOS looks for existing clients — during imports, form submission review, or duplicate scans — records that match exactly now always rank above near matches.

  • A client whose name, date of birth, and phone all match your file exactly is linked with full confidence, even when a similarly-named client exists.
  • A close-but-not-exact name (for example "Jon" vs "John") no longer scores the same as a perfect match. During imports, those rows are held for your review instead of being linked automatically.
  • Some exact combinations — like matching date of birth and phone together — were previously scored too low and are now weighted correctly, so real duplicates surface more reliably.

Filters now follow through to your reports

Two fixes to how filtering by Organization, Service or Household behaves.

Reports respect those filters. Filtering your client list by a service and then choosing "Create Report" used to produce a report covering every client in your organization — the filter was quietly dropped on the way, and nothing on screen told you. The report now covers exactly the clients you were looking at.

Large services filter correctly. If a service had more than 1,000 people enrolled, filtering by it only ever matched the first 1,000 — again silently, with a total that agreed with the wrong number. All matching clients are now found, however many there are. The same fix applies to filtering by organization and by household.

If you have saved views or reports built on these filters, they will start returning the complete set. A report generated before today keeps the numbers it was generated with; re-run it to pick up the corrected results.

A clearer funding partner portal

The funding partner portal got a round of improvements focused on making a portfolio easier to read at a glance.

See what was actually distributed. Alongside the goods value totals, funders can now see a per-item breakdown of goods distributed — each item with its quantity and retail value — both across the whole portfolio and on each organization's page. Items without a recorded price still appear with their quantities.

Impact totals expand by organization. Each impact metric on the dashboard (service records, clients served, volunteer hours, and the rest) can now be expanded to show how much each organization contributed to the total.

Activity you can rank — and trust. "Last active" now reads as an exact day count — "Active 12 days ago" instead of "about 2 months ago" — capped at 90+ days. The organizations list also opens sorted by recent activity, in a single column so the order reads straight down, and the day shown always matches when the work happened, whatever timezone you view it from. Activity itself got more honest too: an organization now counts as active when its people sign in or update existing records, not only when they create new ones, and entering a backdated donation or volunteer hours counts as activity on the day it was entered.

Polish. The portal shows loading placeholders instead of appearing empty while data arrives, organization pages put the organization's name in the page header, and the numbers on the detail cards line up properly.

Import notes now stick around

When an import brings in records that couldn't be linked to something you already have — for example, donors whose names didn't match an existing client — HumanixOS explains what happened. Until now that explanation only appeared as a brief pop-up message, and once it disappeared there was no way to get it back.

Those notes are now saved with the import itself. On the Imports page, any import that has notes shows a Notes button that opens the full list, so you can review what needs follow-up whenever you're ready. If you download the import's error file, the notes are included there too.

Mention teammates in client notes

You can now tag a teammate in a note on a client's page. Type @ in the note box and pick a teammate from the list — their name appears highlighted in the saved note, and they get an in-app notification that takes them straight to that client.

A few details we took care of:

  • Mentions always show the teammate's current name, even if they change it later.
  • Only members of your organization can be mentioned.
  • Editing a note only notifies people you newly mention — nobody gets pinged twice.
  • You can turn these notifications off under Settings → Notifications.

Print public forms to fill out on paper

Public forms can now be printed for paper intake. A new Print blank form button on every public form produces a clean, clipboard-ready version: ruled lines sized for handwriting, every dropdown and multi-select choice printed with a checkbox or circle next to it, and clear space for dates and longer answers.

The printout carries your organization's name and the form's title, skips anything that only makes sense on a screen (like file uploads, which become a short instruction instead), and prints in whichever language the visitor has selected — so a family reading the form in Spanish gets a Spanish printout.

This makes one link the single source of truth for a form, whether it's filled out online, at a community event with no wifi, in a waiting room, or during a home visit. You can also use the button with your browser's "Save as PDF" option to keep blank copies on hand.

A better recipient picker for distributions

Recording a distribution now opens a proper search window for choosing who received it — whether that's a person, a household, or a partner organization.

  • Recently served first. The people and households you serve most often appear before you type anything — regular weekly pickups are now two clicks.
  • Search that matches how you identify people. Typing a name, client ID, phone number, or email finds the right person — and no longer surfaces unrelated matches from addresses or other fields.
  • Tell namesakes apart. Every result shows the person's date of birth and client ID under their name, so twenty "Maria Garcia"s are no longer a guessing game.
  • Households by member name. Search for a household by the household's name or by anyone in it — "Garcia" finds Maria Garcia's household.
  • Short surnames work now. Clients named "Li", "Ng", or "Wu" can finally be found by typing their surname.
  • Big lists stay reliable. Organizations with many households or partner agencies no longer risk records silently missing from the end of a long dropdown.

Clearer Stripe donation settings, with a pause option

Setting up Stripe donations is clearer, and the settings page now does a few things it should have been doing all along.

No more "setup incomplete" when nothing is missing. After you finish setting up Stripe, Stripe spends a few minutes checking your details. The page used to say Stripe still needed information from you, which made a finished setup look like a failed one. It now says your details are being checked, tells you there's nothing to do, and updates on its own the moment you're ready to accept donations.

You can pause donations instead of disconnecting. If you need to stop taking donations for a while, you can now pause them and turn them back on whenever you're ready. Your Stripe account stays exactly as it is.

Disconnecting now asks first. Disconnecting closes your Stripe account for good, so it now asks you to confirm and explains what happens: monthly donations stop, your donation records stay in HumanixOS, and setting Stripe up again later means starting over with a new account. If your account still holds money that hasn't reached your bank, we'll tell you before you decide. And if Stripe can't close your account, we say so plainly instead of reporting success.

See where your money is. The settings page now shows what's available, what's on the way to your bank, and your recent payouts, with a link straight into your own Stripe account for everything else.

Clearer upgrade prompts for SMS & AI on the free trial

The free trial has always been described as including everything except SMS & AI. Those limits are now applied consistently: if your organization is on the free trial and you try to send a text message, set up SMS, or use one of the AI-powered tools, you'll see a clear message with a one-click path to upgrade — instead of a confusing error or, in some cases, no restriction at all.

Everything else in your trial works exactly as before, and nothing changes for paid or sponsored organizations.

Consistent ethnicity breakdowns across reports and dashboards

Demographic breakdowns no longer split one ethnicity category into two rows when older imported records spelled it differently (for example "Black/African American" next to "Black or African American"). Reports, dashboards, funder views, and AI demographic answers now all merge these into the same category, and new imports automatically resolve these spelling variants as they come in.

Clearer guidance when there's nothing to report on

Create Report now tells you up front when the current view has nothing in it: the action is disabled with an explanation when no records match your filters, instead of letting you walk through the whole flow and end up with an empty report — or hitting a generic error message. Saved reports that genuinely contain zero records (a legitimate finding, like "no intakes this quarter") now carry a "No matching records" badge in your reports list so they're recognizable at a glance.

Ethnicity is now check-all-that-apply

The built-in Ethnicity field now lets you select every category that applies, matching how people actually self-identify. The client form, client profile, spreadsheet-style grid, and public intake forms all offer checkboxes instead of a single dropdown, and records imported with multiple ethnicities can now be edited without losing values.

Reports, dashboards, and funder views count clients in each of their selected categories, and filters find a client whenever any of their selected ethnicities match.

More room for service descriptions, with a live character count

Service descriptions can now hold up to 5,000 characters — more than double the previous limit — and every place you edit one now shows a live character count as you approach the limit, so the box never just "stops typing" without telling you why.

Group your services with tags

Services no longer have to live as one flat list. You can now create tags — like "Food", "Housing", or "Emergency" — and apply them to your services.

  • Tag any service with one or more tags, each with an optional color.
  • Filter the services list by tag to see just the programs you care about, such as everything in your food program.
  • Rename a tag once and every service using it updates instantly — no more "Food" vs "food" drift.

Tags are shared across your whole organization, so your team builds one common vocabulary for program areas. You'll find the new tag filter on the Services page, and a "Tags…" option in each service's menu.

Take donations with Stripe

Your donation pages can now take card and bank payments through Stripe, alongside PayPal. Connect a Stripe account from Settings then Integrations, finish the short verification with Stripe, and the Stripe button appears on your donation pages straight away. If you already use PayPal you can keep it. Donors will see both options and pick whichever they prefer.

The money goes directly into your organization's own Stripe account. HumanixOS is never in the middle of it and takes no cut of what your donors give.

Bank payments are offered alongside cards where Stripe has approved your account for them. On a large gift the difference matters: a bank payment costs a few dollars where a card would cost over a hundred.

Donors can also set up monthly giving where your donation page allows it. Each month's payment is recorded against the same recurring gift, so a monthly donor shows up once in your donor list with their giving adding up over time, rather than as a new record every month.

Every gift is recorded when the payment actually succeeds, not when the donor clicks the button, and each donor is emailed a receipt in your organization's name with your tax ID on it. Stripe's processing fee is recorded on the donation too, so your books show what you actually received. You can add your tax ID in Settings then Organization.

Week of August 24, 202631 updates

Edit and delete donors

You can now correct a donor's details from the donor's page. A misspelled name, a changed email address, a wrong donor type or status — open the donor, choose Edit, and save. Previously there was no way to change a donor record once it had been created.

Donors created by mistake can be deleted from the same place.

Donors who have given are protected. A donor's donations, pledges and recurring gifts are part of their record, so deleting a donor would take that giving history with them. Once a donor has any giving on file, the delete is refused and tells you what is attached. To retire a donor you no longer want in your active list, edit them and set their status to Lapsed or Deceased instead — their history stays intact.

Editing and deleting each follow your organization's permissions, so team members only see the actions they are allowed to use.

Activity history now names the person who made each change

The activity history was crediting your teammates' work to "System". Only your own actions showed a name. Now every action shows the person who performed it, so you can see at a glance who edited a client, changed a setting, or removed a record.

"System" still appears where it belongs — public form submissions, check-ins, text messages, and scheduled jobs. And on the rare occasion a person's account can no longer be found, that now reads "Unknown user" instead of quietly looking like an automated action.

Event check-in forms now show your branding

Public event check-in pages now render your logo, colors, and font — exactly as the form builder's Style preview shows them. Previously, check-in forms ignored branding entirely, so attendees saw a plain page even when the form was fully styled.

A full activity history on every client page

The client page's SMS history card is now a full Activity history — one feed of everything that's happened with that person, newest first.

Text messages, emails, notes, service entries, form submissions, donations, event registrations and record edits all appear in one place, each with when it happened. Filter chips narrow the feed to one kind of activity — choosing SMS gives you exactly the view the old card did — and older activity loads as you ask for it.

You only see the kinds of activity you have access to: if donations aren't part of your role, they're not in your feed. The Send SMS button and the consent panel are unchanged.

The client activity history now shows who did it

The activity history on a client page told you what happened and when, but never who. Now each entry names the person behind it, so "address changed on 12 August" reads "address changed on 12 August by Maria".

Notes, service entries, donations, event registrations, record edits and the text messages your team sends all carry the name of the person who did them. Things the client did themselves, like submitting a public form or texting you back, are labelled that way instead of being left blank. On the rare occasion an account can no longer be found, the entry says so rather than pretending nobody was involved.

Create a client straight from a donor's page

When a donor starts receiving services, you no longer have to retype everything. The donor page's Linked Client card now has a "Create client from donor" button that opens the add-client form prefilled with the donor's name, email, phone, and address — all editable before saving — and links the new client to the donor automatically. If someone similar is already a client, we show the likely matches first so you can link them instead of creating a duplicate.

Arrange the client page your way

The cards on a client's page can now be arranged to fit how you work.

A Customize button on the client page opens a panel listing the page's cards — services, events, items received, giving history, notes, activity history, SMS consent. Hide the ones you don't use and drag the rest into the order you want; keyboard reordering works too. Reset to default puts everything back.

Your layout is yours alone — it follows you across sessions, and doesn't change what anyone else sees. Cards your role doesn't have access to aren't in the panel at all, and when we add new cards to the page they'll appear at the end of your layout rather than being hidden by it.

Tag inventory distributions with a service

When distributing items, you can now optionally tag which service program the distribution belongs to — this bag of groceries is part of "Food Pantry". The tag shows on the distributions list, the distribution detail, and the client's items-received history, and it lays the groundwork for reporting goods distributed under each program. Existing distributions are unaffected, and the tag is never required.

Section headers in the form builder

You can now add section headers to your public forms. A section header is a title with an optional description that appears between questions, so long intake forms can be broken into clear, readable sections like "Contact information" or "Household details".

To add one, open the form builder and choose Section Header from the Add Question panel. Drag it anywhere in your form, give it a title and an optional description, and it will appear on the public form exactly where you placed it. Section headers are display-only: they never ask the person filling out the form for anything, and they're translated along with the rest of your form.

Google Forms import: available everywhere, and now maps onto your existing fields

Importing a Google Form just got a lot more useful:

  • Import from the form builder. The "Import Google Form" button now also appears in the builder whenever you start a new, empty form — including when you create a service form directly from a service page. Previously the import was only offered on the form-type selection screen.
  • Match imported questions to your existing fields. After an import, a new matching step suggests which of your existing fields each imported question corresponds to — standard client fields like First Name or Email, your custom fields, and (on service forms) the service's own fields. Accept a match, pick a different field, or keep the question as-is. Matched questions fill in the real field on the client or service record when someone submits the form, instead of arriving as separate answers you'd have to copy over.

Available in English, French, and Spanish.

Link clients to households right from the clients page

Household linking now lives where you work with clients. Select one or more clients in the grid and use the new "Add to household" button to place them in an existing household or create a new one on the spot — with optional relationships like Spouse or Child. A new Household column shows each client's household at a glance and filters like the Organizations and Services columns, and the client page gains a Household card listing the other members, each one a click away.

Import rollback now available for 7 days

You now have a full week to undo an import, up from 24 hours — plenty of time to catch a Friday mistake on Monday. And when a rollback isn't available, the button now explains why instead of disappearing: the window has passed, or the import predates rollback tracking.

Receive and Distribute straight from an item's page

Looking at an item and want to act on it? The item detail page now has Receive and Distribute buttons alongside Adjust stock. Both open their form with that item already filled in on the first line — no more navigating away and re-finding the item you were just looking at.

Record a donation without leaving the donor's page

Logging a gift for someone whose page you were already looking at meant going to the donations list, opening the form there, and finding the same person all over again. There is now a Record Donation button on the donor's own page, and it opens with that donor already filled in.

The gift shows up straight away in their giving history, and their lifetime giving, gift count and last gift date update at the same time, so there is nothing to refresh.

The donor page also picks up the same bar the rest of the donor pages use, so moving between the donor list, donations, campaigns and funds no longer changes the shape of the page underneath you.

Barcode scanning serial numbers now works on receive

Entering per-unit serial numbers on the inventory receive form no longer drops focus after each character. Barcode scans now land in full, pressing Enter after a scan jumps straight to the next serial box, and typing serials by hand no longer requires clicking back into the field.

Feedback forms can now be tied to a service

You can now run per-program surveys. When creating a feedback form, optionally pick the service it's about — or start one directly from the service page's actions menu, pre-linked to that service. Responses stay anonymous, and the forms list, the responses view, and the service's details panel all show which service a feedback form belongs to, with response counts at a glance.

More accurate donor, grant, and form totals

We fixed an issue where the summary totals on the Donors, Grants, and Forms dashboards could under-count once an organization had a large amount of history. Donation totals, grant pipeline value, and form submission counts are now calculated in full, so the headline numbers stay exact no matter how much data you have.

Auto-add forms now actually add

If you set a public form to add submissions automatically, it does — including for people you've served before.

Until now, a form set to Add automatically would still hold a lot of submissions for review. The reason was invisible: someone who already exists in your records, filling in their name and email, looked "similar enough to need a human" but not "certain enough to link". Since returning clients are the normal case on a service form, auto-add ended up reviewing almost everything, and there was nothing on screen explaining why.

Now a submission that matches an existing client — same person's name, plus a matching email, phone or date of birth — is linked to that client, and everything else creates a new one. A shared household email or phone number on its own is never enough to treat two people as the same person. Nothing waits for review. If a duplicate does slip through, the duplicate-detection tools will find it and you can merge the two records.

If you'd rather keep an eye on the close calls, there's a new middle option: Add automatically, but review likely matches. New people are added straight away, and only submissions that look like someone you already have wait for you to confirm.

Every submission that is waiting now tells you why. Whether it matched an existing client (and how closely), whether your duplicate-detection setting asked for it, whether the form updates an existing entry and so always needs review, or whether something went wrong saving it.

That last one used to be invisible: if adding the client failed, the submission just sat there looking like nobody had got to it yet.

Forms that update or complete an existing entry still always require review — a form link on its own can't change a record you already have — and the form builder now says so instead of offering a setting that could never apply.

Billing emails, finally

Until now, paying for HumanixOS was a silent experience. You subscribed and heard nothing. You were charged every month and heard nothing. If your card was declined, the first sign was usually something in the product not working.

That changes today. There are now four emails, all sent to the person listed as your organization's owner.

When you subscribe, you get a confirmation with your plan, what you're paying, how often, and when the next payment is due.

Every time we charge you, you get a receipt with a link to the invoice itself, so you can download it for your books or hand it to your board.

If a payment is declined, we tell you straight away, while nothing has changed yet and your account is still fully active. Most declines are just an expired or replaced card, and updating it takes a minute. If we still can't collect after several tries, we send one more note before your access is affected. Two emails per problem, not one per attempt.

When you start a free trial, you now get an email confirming it, how long you have, and when it ends. Previously the first billing email a trial user ever saw was the one saying the trial was ending, which read like we'd lost the first message.

All four arrive in English, French or Spanish, matching your language setting, with amounts and dates formatted the way you'd expect to read them.

Choice questions can offer "Other"

Dropdown and checkbox questions on your forms can now let people write in their own answer.

Turn on Allow an "Other" answer when editing the question. On the form, choosing Other reveals a box where the respondent types their answer, and what they type is recorded as their answer — so it reads normally in the submission, not as "Other" with a footnote. On checkbox questions, Other can be ticked alongside the regular choices.

If someone picks Other and leaves the box empty, the form asks them to fill it in before submitting.

Imported Google Forms keep their "Other" too. Until now, a Google Form with "Other: ___" imported as a plain Other choice with nowhere to type — people could pick it, and it recorded nothing. Now the fill-in comes across with the rest of the form.

Forms you built before this are unchanged, including any that already have an option simply labelled "Other" — that keeps working as an ordinary choice.

Imported Google Forms can be service forms

Importing a Google Form now asks what kind of form it should be, instead of quietly deciding for you.

Before, pressing Import Google Form before choosing a form type produced a feedback form. The questions came across correctly, but a form's type — and the service it belongs to — is fixed when the form is created, so there was no way to turn it into a service form afterwards. You had to delete it and start again, and nothing on screen suggested that picking the type first would have made the difference.

Now the import brings your questions in and leaves the type picker up, telling you how many questions arrived. Choose Client, Service, Event or Feedback as usual — and for a service form, the service — and continue into the builder with everything imported.

If you'd already chosen a type before importing, nothing changes: you go straight to the builder as before.

Imported questions on a service form now record their answers against the service, the same as questions you add by hand. Previously they were collected but never written to the service record.

Sign people out automatically after inactivity

You can now have HumanixOS sign people out when they've stopped using it.

If your organization works on a shared computer — a front desk, a laptop that moves between rooms — a session left open is a real risk: client records and donor details sit behind it. Some funders ask about this directly in their security questionnaires.

Under Settings → Security, choose how long to wait: 15 minutes, 30 minutes, an hour, four hours, or never. A minute before the time is up, a message appears with a Stay signed in button, so nobody loses work mid-sentence.

Working in any open tab counts, so having a client record open in one tab and a report in another won't sign you out of either.

This is off by default and nothing changes until you turn it on. Only people who can change your organization's settings can set it, and it applies to everyone in the organization.

One report across several services

You can now build a single report covering two or more of your services — "Food Pantry plus Coat Drive, third quarter" as one document, instead of two reports stitched together by hand.

When creating a report from a service page, use Include other services to tick the ones that belong in it. The report shows combined totals — entries, active count, and unique people served, counted properly: someone helped by two programs counts once — plus a per-service breakdown, so it answers both "how much did we do" and "which program did it".

Entries are grouped by service, each with its own columns, since different services record different things. Exports carry a Service column on every row and the combined and per-service numbers in the summary.

The date range and the personal-information setting apply across everything in the report, and the option only offers services you have access to.

Form questions can become service columns

A question you add to a service form can now feed the service itself, instead of only living on the submission.

When you're building a form for a service, questions have a Save answers to the service option. Turn it on and the question becomes a column on that service, so approved answers land in the service grid next to everything else you record — the same as if you'd added the field to the service first and then placed it on the form.

The column is created when you save the form, using the question's own wording as its heading, and choice questions bring their options with them.

Questions imported from a Google Form work the same way, so a form you built elsewhere can feed your service data without rebuilding it by hand.

A few question types have no matching column type and stay on the form only — the option is shown but switched off for those, so you can see why rather than wondering where the setting went.

See what your volunteer hours are worth

Your volunteers' hours have been recording automatically since shifts and check-in arrived. Now you can get them back out.

There's a new Reports tab in the Volunteers section. Pick any date range and you'll see total hours for that period, how many volunteers contributed, and what those hours are worth in dollars. Below that, a breakdown by how the hours were recorded (scheduled, checked in, self-reported, or added by hand) and a list of every volunteer with their own total.

Hours still awaiting your approval are shown separately, so they never quietly inflate the number you report to a funder. You can also switch the report to include them, or to look at any other status, whenever you want the fuller picture.

Export for grant reports. One button gives you a spreadsheet file ready to attach to a grant application or a board packet. It opens with a summary of exactly what it covers: the dates, which hours were counted, and the hourly rate used. Anyone reading it can tell where the number came from.

The dollar value. By default we use the national value of volunteer time published by Independent Sector, currently $36.14 an hour. If a funder requires you to use a different rate, you can set your own under Volunteers then Settings, and every dollar figure updates to match. Leave it blank to stay on the national rate, which we update each year.

The report reads from the same records your funder portal does, so the numbers in both will always agree.

Donor imports can link donors to the clients they already are

If the people you serve are also the people who give, your donor import can now connect the two.

Donor records have always been able to point at a client record — there's a client picker in the Add and Edit Donor dialogs — but the import had no column for it. So an organization that imported its constituent list and then its donor list ended up with the same people in the system twice, unconnected, and the only way to join them up was one at a time by hand.

The donor import now has a Client (Name, Email or ID) column. Map it to whatever your file uses — a client's name, their email address, or the client ID you assigned them — and each donor is linked to the matching client as it imports.

It links to clients you already have and never creates new ones. If a value doesn't match anybody, or matches two people with the same name, the donor still imports — just without a link. The import then tells you how many donors came in unlinked and why, with an example of each, so you know whether it's a handful to fix by hand or a column worth remapping. We'd rather leave a link blank than attach someone's giving history to the wrong person's record.

You'll need permission to view clients to use the column, since matching means reading your client list.

Email campaigns now send reliably

Sending an email campaign to a larger list now works the way it always should have.

Previously, campaigns going to ten or more recipients were accepted and shown as queued, but were never actually delivered. Smaller campaigns sent normally, which is why the problem was easy to miss. Anything queued is now delivered automatically, and campaigns move from "sending" to "completed" on their own.

We also fixed the email builder. Designs you create there are now saved with the campaign and sent exactly as you built them. Before, the builder looked right on screen but the design was not stored, so what went out did not match what you designed. Test sends now use the same design as the real send, so what you check is what your recipients get.

A few smaller improvements came with it:

  • You can save a campaign while you are still working on it, even if you have not yet chosen an image or filled in a button link.
  • Duplicating a campaign or template now copies its design too.
  • If a send is interrupted, it is recorded as failed and can be retried, rather than leaving the campaign stuck part way through.
  • A large mailing from one organization no longer holds up everyone else's email.

Forms only offer languages they can actually show

If a public form hadn't been translated, its language menu still listed every language — and a visitor who picked one got an English form with no explanation. Confusingly, the buttons and labels around the form did switch language, so it looked like translation was working and the form itself was simply ignoring the choice.

A form now offers a language only when it genuinely has that translation. Nothing else changes for forms that are already translated.

If one of your forms is missing a language it should have — because it was built before translation existed, imported from elsewhere, or created while our translation service was briefly unavailable — saving and republishing it will translate it. Get in touch if a form still looks wrong afterwards.

Donation imports tell you what they need up front

Importing gift history links each gift to a donor who already exists in HumanixOS — it doesn't create donors from a gifts file, because a gifts export rarely holds enough to identify someone safely.

That's always been true, but you only found out after the import had failed. Now the import tells you when you choose what your file contains, and it checks that you've mapped a donor column and a gift date before you import rather than after.

We've also corrected several help articles that described things the app doesn't do — an Appeals page that doesn't exist, duplicate detection during imports, and a list of import steps that didn't match the actual wizard.

Imports tell you what happened to every row

Several changes to how imports report themselves.

Gift rows with no amount no longer break the import. Donor exports often carry rows with a blank amount — pledge placeholders, subtotal lines, half-finished entries. Those used to stop the import before it started, with "Amount is required", which made an otherwise clean file look broken.

Now a blank amount is a decision rather than an error. If the row names a donor we can match, it's brought in as a $0 gift. If it doesn't — a subtotal line reading "TOTALS", say — the row is skipped, and that count shows in the Skipped column on your import history. Either way the rest of the file imports normally, and the review step tells you up front how many rows this applies to.

When rows don't import, you can see why. Previously you got a count — "37 rows didn't import" — and the wizard closed, taking the reasons and your column mapping with it. Now the rows that failed are listed with the reason for each, and the wizard stays open so you can read them. If some rows did import, the reminder to undo within 24 hours stays on screen with the list.

Those reasons are also kept with the import, so you can come back to them later: your import history now offers a Download errors file listing each failed row and why it didn't import. It covers client, service-record and donation imports alike, and if an import had a very large number of failures the file says how many of them it's showing.

Re-importing the same gifts no longer duplicates them. If your export includes its own gift or transaction ID, map it to the new Gift ID column. It's your previous system's ID, kept as you sent it — nothing is generated for you, and it's stored separately from the IDs our payment integrations use. Gifts you've already imported under that ID are skipped instead of being brought in a second time — so if an import partly fails, you can fix the file and run it again without doubling the rows that worked.

See exactly which records an import created

Your import history has always told you how many records came in. It couldn't tell you which ones — so after importing 412 gifts, the only answer to "where did they go?" was "somewhere in your donations list".

Every finished import now has a View rows button. It opens a list of everything that import added, grouped by type — donors, donations, grants, clients, and so on — with a link straight to each record where there's a page to link to. If an import brought in more than fifty of something, the list shows the first fifty and tells you how many there are in total.

You'll only see the types you have access to. If you can't open the donors area, an import's donors won't be listed for you either.

Earlier updates