Changelog
New features, improvements and fixes in Daisychain.
October 2026
Solidarity Tech integration
You can now connect Solidarity Tech to Daisychain from Settings → Integrations by pasting your API key. Daisychain imports your Solidarity Tech users as people and keeps them in sync every hour.
Read more →
See survey responses for your flows
You can now see how people answered the questions a flow asks, in a new Survey Responses tab on the flow's Usage page. It covers question steps and surveys on AI steps, with response rates and answer breakdowns for each question across every version of the flow.
Read more →
ActionKit actions in real time
ActionKit actions, such as petition signatures, signups, and donations, now arrive in Daisychain as they happen, so they can start automations and appear in a person's activity right away. Daisychain sets this up in ActionKit for you when you connect or re-enable an ActionKit integration.
Read more →
Match imports on your own identifiers
You can now add your own external identifiers, like a voter file ID, under Settings > People > Fields and match CSV imports on them. When a row's identifier isn't on file yet, the import falls back to matching by email or phone and attaches the identifier to that person.
Read more →
See, filter, and export a flow's conversations
The flow Usage page now has a Conversations tab listing the conversations that have run through the flow, with filters for version, node, and status, and an Export CSV button that exports the conversations matching your filter.
Read more →
ActionKit integration
Account admins can now connect ActionKit from Settings > Integrations to import ActionKit users as people in Daisychain, with updates synced hourly after the first import. Imported people keep their ActionKit user ID, and you can choose whether people with a mobile number and no SMS subscription history are subscribed to SMS.
Read more →
-
In the inbox, conversation lists filtered to a campaign now load faster, especially for campaigns sent to large audiences.
-
A/B tests that have finished their test batch but still need a winner now show an "Action required: choose an A/B test winner" tag on the dashboard and the campaigns list, linking to the campaign report. For tests with tracked links, the campaign creator also gets one email, either as soon as a variant is significantly ahead on click rate or after 24 hours saying there's no significant difference and either variant is fine to send.
-
We fixed an issue where a campaign you had viewed while it was sending could keep showing as "rendering" on the campaigns list until you reloaded the page.
-
Opt-outs imported from VAN are now labeled "Opted out in VAN" instead of "Added by an upload", and appear in the API with the reason
ngpvan. Opt-outs imported before this change keep their existing label. -
We fixed an issue where, in some cases, a new contact synced from VAN with their phone already marked Opt Out was still included in textable audiences and could be sent texts. Phones affected by this issue are now correctly marked as opted out.
-
Developers can now create questions through the v1 REST API with
POST /api/v1/questions. Answers are passed as a list of values, and Yes/No questions automatically get Yes and No answers. -
The conversion funnel on a flow's Usage page now keeps its history when you publish a new version of the flow, instead of starting over. Steps removed in later versions still show their past activity.
-
The automations list now shows when each automation was last run.
-
We fixed an issue where the conversion funnel chart showed only one incoming path for steps that several steps lead into, and couldn't be drawn for flows that loop back on themselves.
-
A flow's conversion funnel now keeps its history when you republish the flow, counting activity from earlier versions alongside the current one instead of starting again from zero.
-
We fixed an issue where the conversion funnel chart showed only one incoming path for steps that can be reached from more than one place, and could fail to draw for flows that loop back on themselves.
-
We fixed an issue where people synced from Mobilize could lose the street, city, and state on their address, or end up with a duplicate address, when Mobilize sent only a ZIP code.
-
You can now filter a flow's Conversations list by how recently the person last wrote in, for example "Incoming message in the last 3 days" or "No incoming message in the last 6 hours". The "is not" option also includes conversations that never had an incoming message, and the filter applies to the CSV export and bulk actions too.
-
We fixed an issue where an automation delay step's summary could read "1 minutes" instead of "1 minute".
-
You can now run an automation for many people at once by selecting them on the people list and choosing the Trigger Automation bulk action. This can be used with the People Filter feature to apply an automation to a set of people.
-
When reading replies to a flow, we now take the earlier messages in the conversation into account, so replies like "2pm" or a yes split across two texts are understood in context.
-
Each upload in the Uploads list now opens its own page, with an overview of who uploaded it, when, how people were matched, and how many people were created or updated, plus View people and Download CSV buttons. Admins and managers with analytics access can also open the Audience tab to see the Analytics audience report for just the people in that upload.
-
We fixed an issue where some valid hostnames were rejected when they had digits or hyphens after the first part, such as example.foo-2-bar.com.
-
You can now change a question's answer type after it's been created, as long as existing answers stay valid. Short text and long text can be switched either way, as can multiple choice and dropdown, and number or date questions can become short or long text.
-
We fixed an issue where messages sent from a person's conversation in the inbox could go into an older thread the person had never replied in, so their next reply landed there too. Messages now go to the conversation with the most recent message.
-
We fixed an issue where some Verizon and AT&T numbers weren't recognized as those carriers, so texts to them were sent under stricter rate limits than they should have been.
-
The CSV import results screen now explains why rows were skipped, grouping them by reason: repeats of an earlier row, rows with no phone or email (including when that column wasn't mapped), invalid data, or rows that failed to import. The full list of skipped rows is still available under "Show skipped rows."
-
We fixed an issue where, for people with more than one phone number, a reply written in the inbox could be sent to a different number than the one the conversation was on, and in some cases fail to deliver. Replies sent from the inbox or through the API now go to the conversation's own number whenever it can still receive messages.
-
Photos and images attached to a text are now automatically resized to fit under the 500KB attachment limit, instead of showing a "too large" error. Images in formats carriers don't reliably deliver, such as WebP or HEIC, are converted to JPEG or PNG, and GIFs are left as they are so they keep their animation.
-
When you attach media to a text, the attach popover now shows upload progress and a "Processing…" state, and the attach button shows a spinner until the file is ready, even with the popover closed.
-
We fixed an issue where a photo or video attached to a text was sometimes never added to the message if the attach popover closed before the upload or video compression finished.
-
In Settings > Quick Replies, you can now select several quick replies at once and move them to a reply set or to Global Quick Replies, or apply quick reply tags to all of them. Moved quick replies go to the end of their new list, and existing tags are kept.
-
Reply suggestions now take the recent conversation into account, so a short answer like "Yes" or "2" is matched against the question it answers. Suggestions that are unlikely to fit are no longer shown.
-
On the People page, the pathway filter can now find people who are not on a specific pathway, or not in a specific stage of one. Filtering out a stage still includes people in other stages of the same pathway.
-
We fixed an issue where a value in a dropdown custom field couldn't be cleared once it was set. You can now clear dropdown custom fields when editing a person's profile or adding a person.
-
For ActionKit integrations, the "Subscribe imported people to text messages" option is now only available on accounts with a number that texts subscribed people, since ActionKit doesn't record text message opt-outs and the option could subscribe people who had opted out. While the option is on, a warning now explains that the first import subscribes every mobile number, hourly syncs subscribe new and updated people, and people who opted out in another tool will be subscribed again. Integrations that already have it on can still turn it off from their settings page.
-
You can now select conversations on a flow's conversations list and use the "Mark complete" bulk action to end the flow for each of them. Anything the flow had scheduled, like follow-ups, is cancelled, while the conversations themselves stay open.
-
We fixed an issue where requests that sent the
pageparameter in nested form, such aspage[number]=2&page[size]=20, returned an error instead of a response. -
On a flow's Conversations tab, you can now select conversations and use Move to published version to move active conversations from older versions onto the flow's published version, with each continuing from the step it is on. Before anything moves, a confirmation shows how many conversations will move and how many will stay put and why, and the version filter now labels a draft version as "(draft)".
-
On the People page, you can now remove a tag from a selected or filtered list of people with the new Remove Tags bulk action, next to Add Tags. As with adding tags in bulk, removing them in bulk doesn't update mapped Activist Codes in VAN.
-
We fixed an issue where account admins who entered a US bank account by hand when updating their payment method saw an error, even though the account had been saved and was waiting on a small verification deposit. The payment method window now explains the deposit and links to the verification page, and the Billing page lists any bank accounts awaiting verification with a "Verify" link.
-
If a Daisychain subscription is canceled because payment couldn't be collected, the account is now paused and its billing contacts receive an email. The paused page shows "Payment Needed" with an "Update payment method" link, and adding a payment method there pays any open invoices, starts a new subscription, and lifts the pause.
-
We fixed an issue where closing the Audience "Edit" modal on a campaign's content step without saving kept the unsaved audience on the page, where it could later be saved by mistake. Closing the modal without saving now discards your changes.
-
Mobilize closest-event lookups, in campaigns and the Event Invite automation step, can now target specific dates, such as a weekend of action, instead of only events at least a set number of days away. Choose "On specific dates" in the lookup settings and pick a date or date range.
-
The Mobilize closest-event lookup settings now list the events your filters match before you save. They also show which virtual event people beyond the Max Distance will be invited to, or say that they'll be skipped if no virtual event matches.
-
For campaigns that invite people to their closest Mobilize event, the Content and Review steps now estimate how your whole audience splits across the matching events. They also show how many people will be skipped and why, such as being out of range or having no location.
-
When matching people to their closest Mobilize event, we now use addresses known only to the city level. Addresses known only to the state or country still aren't used.
-
Mobilize events now look the same throughout the campaign builder, with the date, event type, time in the event's own time zone, location, a Featured badge, and the event's image when it has one. When you choose a specific event or timeslot, the event chooser now appears inline instead of in a separate window.
-
When importing a CSV, each column mapped to a custom date field now has a "Dates formatted" option on the mapping step, so you can choose whether its dates are written month-first, day-first, or year-first. It defaults to the order the column's values show, or your account's country if they could be either.
-
We fixed an issue where numeric dates in custom date fields were always read day-first, so for US accounts a date like 12/25/2024 was rejected and 03/04/2024 was saved as 3 April. Numeric dates are now read in the order your account's country uses: month-first for the US, year-first for countries such as Japan and Korea, and day-first elsewhere. Invalid dates now show the expected format in the error message.
-
We've updated the API documentation to describe the rate limit of 5 requests per second per API key, the
429 Too Many Requestsresponse, and theRateLimit-Limit,RateLimit-Remaining, andRateLimit-Resetheaders. The limit itself hasn't changed. -
We fixed an issue where SMS opt-outs synced to VAN appeared in contact history without a contact type. Opt-outs are now recorded with your SMS Text contact type.
-
Incoming text messages are now processed more quickly and should show up in your Inbox roughly 1 second sooner than they would have before the optimization.
-
Texts that match one of your account's keywords are no longer checked for an implicit opt-out with AI, so someone texting a keyword that is similar to an opt-out word now won't be unsubscribed by mistake. Explicit opt-outs such as STOP still opt the person out.
-
We've updated AI auto opt-out so that it has a lower false-positive rate.
-
We fixed an issue where a REST API request updating an AI step could remove all of its custom fields or survey questions while the tool stayed enabled. These requests, and new AI steps with a survey that has no questions, now return a 422 validation error and leave the existing configuration in place.
-
Developers can now return a conversation to its flow through the API with
POST /api/v1/flows/{flow_id}/conversations/{id}/resume, either at the step where it paused or at another AI step chosen withnode_id. API conversation responses now include the current step'sidentifierfor this, and in the inbox these returns show as "Returned to {step} via API". -
We've added a public API endpoint,
POST /api/v1/flows/{flow_id}/conversations/{id}/complete, that marks a conversation as completed in a flow. The flow stops handling the conversation and any pending follow-ups are cancelled, so the person's next message goes to the inbox, just as when a flow runs out of steps. It works on active flows and on flows a staff member has taken over, and calling it on a conversation that's already completed changes nothing. -
Follow-ups on intelligence nodes are now always set up as a list of steps, each waiting its own time after the message before it. The Fixed / Custom toggle is gone, and existing fixed schedules have been converted to the equivalent steps. New follow-ups start with two 30-minute steps.
-
In the v1 nodes API,
followup_schedule,followup_delay_minutes, andmax_followupsare no longer returned and are now rejected as unpermitted attributes. Turning on follow-ups for an intelligence node now requiresfollowup_steps, unless the node already has steps. -
We've updated the default follow-up reminder prompt for intelligence nodes so follow-ups no longer describe themselves as the final reminder. You can still mention the final reminder in a node's own follow-up prompt if you need to.
-
Large list imports from VAN now finish faster, because we can now work on several parts of a list at the same time instead of one at a time.
-
We fixed an issue where survey responses from people with Puerto Rico or other US territory phone numbers weren't accepted by VAN. These responses now sync to VAN correctly.
-
We fixed an issue where survey responses synced to VAN appeared in contact history without a contact type. They're now recorded with VAN's "SMS Text" contact type, which the VAN committee needs to have when you add or replace an API key. Responses synced before this change keep their empty contact type.
-
Follow-ups on intelligence nodes can now use a custom schedule. Choose Custom instead of Fixed to add any number of follow-ups, each with its own wait after the message before it. Quiet hours still apply. The v1 API now accepts and returns
followup_scheduleandfollowup_stepsfor intelligence nodes. -
You can now follow the Daisychain changelog in a feed reader at https://go.daisychain.app/changelog.rss. Every changelog entry, including fixes and improvements, now also has its own page.
-
We fixed an issue where, in some extremely rare cases, a message's status could change back to sending after it had already been marked as sent or delivered.
-
We fixed an issue where a Mobilize integration whose API key was valid but did not have access to the organization wasn't disabled, and no invalid API key alert was shown.
-
We fixed an issue where importing a large saved list from VAN could, in some cases, request the same export from VAN more than once.
-
In the inbox, filtering conversations by assigned user is now much faster, especially in large accounts.
-
We fixed an issue where, in rare cases, an action from Action Network wasn't imported when several actions for the same person arrived at once.
-
We fixed an issue where some exports from VAN could fail when VAN timed out. Daisychain now falls back to a different VAN export type in that case.
-
Data Sync now includes a Campaign Deputy contributions table, and the actions table has a new
campaign_deputy_contribution_idcolumn so you can join synced actions to their contributions. If you already sync actions, you'll see the new column in your warehouse after the next sync. -
We fixed an issue where a VAN saved list that sat in more than one folder could cause the VAN API key to be disabled. Lists now appear under each of their folders on the Lists tab, and a list's page shows every folder it's in.
-
In the flow studio, you can now switch between a flow's live version and its draft. Nodes and transitions on the live version open read-only, including a summary of each AI tool's settings, with an option to edit the node in the draft.
-
We've redesigned the API reference and data dictionary. The pages now have a searchable sidebar, a Concepts section, links to each endpoint, field-by-field descriptions, and explanations of what each value means, including message action kinds.
September 2026
Rule-based transitions in flows
Intelligence node transitions can now be rule-based: a branch is taken when the contact matches a people filter, built with the same filters as the People list, with no AI involved.
Read more →
Campaign Deputy integration
You can now connect Campaign Deputy to bring people and their contributions into Daisychain. Contributions show on the person's page and can trigger automations.
Read more →
Follow-up texts on automation messages
Automation send-message steps can now include follow-up texts that go out one after another until the person replies or clicks a link in the conversation.
Read more →
Share with a Friend campaigns
We've added a Share with a Friend campaign goal. Each recipient gets a personal link to a page that hands your message to their phone's share sheet, so they can forward it to a friend from their own number.
Read more →
Request a custom link domain
Account admins can now request a custom short-link domain under Settings > URL Shortening and see the DNS records to add right away, instead of emailing support.
Read more →
-
We fixed several issues with large postal code filters: they could fail to count people, give an error on the People page, or make the editor slow after pasting a long list of codes.
-
We fixed an issue where the "SMS Message Sent" activity filter also matched people who had only texted in.
-
Saved filter lists now load faster. A filter whose people count hasn't been calculated yet shows "Counting…" until it's ready.
-
Email footers now include the second line of your organization's address.
-
New accounts are now asked for their organization's website and public contact email as the last step of sign-up, since these are needed for texting registration and the HELP reply.
-
In the inbox, the Completed tab now has All, Replied, and Opted out filters.
-
Automatic opt-out detection now considers the recent conversation, so replies like choosing "stop" from options we offered, or a sentence split across texts, are less likely to be treated as opt-outs. Clear requests to stop receiving messages are still treated as opt-outs.
-
We fixed an issue where people assigned to a user who left the account didn't match the Assigned filter's Unassigned option.
-
The flow simulator now shows when the next inactivity follow-up is due, under the person's last message, and lets you send it right away.
-
We fixed issues where people could keep matching custom field filters after a value was cleared, and where custom fields set through the API didn't show up in filters for some new people.
-
We fixed an issue where scheduled flow reminders could still go out after the flow had finished.
-
On a person's conversation page, the conversation link no longer points back to the page you're on. Elsewhere, it's now labeled "Conversation permalink".
-
The API now returns a 422 with a clear validation message for invalid input, such as an unknown status or tag kind, instead of a server error.
-
The Tags filter now has a "does not have any of these tags" option, so you can leave tagged people out of a filter.
-
We fixed an issue where ActBlue donations were not recorded when the donor opted in to texts with a phone number that can't receive them.
-
In the flow simulator, you can now search past simulations by name or phone number, and pick the test person from a card with Shuffle and Choose person options. Only people who could receive texts from the flow are offered.
-
We fixed an issue where a dropped connection could stop some pages, like VAN lists, from updating.
-
We fixed an issue where ActBlue donations and Mobilize RSVPs that came through links sent by an automation weren't recorded.
-
If a Campaign Verify token is rejected because it's already linked to another brand, we now email the account's admins and ask for a new token. Once a new token is added, we try the registration again.
-
Adding a tag to a person can now trigger an automation. Tags that start an automation can't be deleted until they're removed from it.
-
The API's flow node endpoints can now set an intelligence node's tool configuration, such as custom fields, survey questions, legislative lookup, and address settings, in the same request as the node itself.
-
We fixed an issue where a campaign audience made only of a deleted import could select everyone in the account. A re-imported VAN list now matches only its latest import.
-
We've added a read-only API endpoint that lists a person's notes, including notes written on their pathway cards.
-
Whoever wrote a note on a person or pathway card can now edit or delete it from the activity feed.
-
The automation page now shows skipped and failed run counts beside the total, each linking to the execution log filtered to those runs. A skipped run now explains that the person had already run the automation once and links to that earlier run.
-
Each send-message step in an automation now has its own delivery report, with a funnel, an example message, clicks, replies, opt-outs, and a breakdown by delivery status and carrier.
-
Data exports now include the message actions table.
-
You can now filter people by whether they have entered a specific automation, or whether they have replied in a specific flow.
-
We fixed an issue where inactivity follow-ups in intelligence nodes could schedule reminders for made-up dates, or fail to send.
-
The API can now create flows. The flow list also includes draft flows, and each flow has a status field.
-
AI agents in flows now see a calendar of the coming weeks, including the person's national holidays, so reminders land on the right day. Asking for the same reminder twice no longer books a second one.
-
You can't delete a custom field while a flow or pathway still uses it. Instead, we list where it's used, with links to remove it there.
-
The email editor and the charm frame editor now have a {{}} button for inserting Liquid variables at the cursor.
-
The API now has endpoints for managing a flow's AI agent guidelines and for creating, updating, importing, and exporting skills, including skill environment variables.
-
We fixed in-app help links that opened the help center home page instead of the relevant article.
-
Account admins can now limit members with the user role to replying only through claimed reply batches, with the Reply batches only setting under Settings > Channels > Texting > Options. Those members no longer see the account-wide inbox.
-
Charm text now renders closer to how it looks in a browser, with more accurate line spacing, baselines, and wrapping.
-
We fixed an issue where saving an automation could drop a charm's images, or remove a charm that used an uploaded font.
-
We fixed an issue where flows that moved on through an AI transition stopped responding in live conversations, even though they worked in the simulator.
-
We fixed two issues in the flow simulator: message bubbles could float out of place, and the message box could lose focus.
-
To help avoid carrier blocks, texts sent over 10DLC to US Cellular and smaller carriers are now paced at up to 50 per minute per phone number. Carrier breakdowns in reports now list US Cellular, Other, and Unknown separately.
-
Account admins can now see the estimated cost of each campaign under Settings > Account > Billing > Campaigns, priced at the plan's standard rates, and export the list as a CSV. These figures are estimates for planning and may differ from your invoice.
-
We fixed an issue where changing the tag on an existing add-a-tag automation step kept the old tag.
-
AI transitions out of an intelligence node are now judged together, with more of the conversation as context, so they match more reliably. The inbox shows the reason each transition was taken.
-
Account admins now get the email saying their account is ready to text when toll-free verification completes, as they already did for 10DLC.
-
You can now filter people by whether they texted a specific keyword. People who later opted out are still included.