> For the complete documentation index, see [llms.txt](https://docs.agilecase.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.agilecase.com/release-notes/2025/march-2025.md).

# March 2025

## 3 March 2025

This release concentrates on email batches and on the data uploader, with a handful of smaller interface improvements alongside them.

### New

#### Uploads can now fill table custom fields

The AgileCase uploader, used to bring data in from external forms and systems, can now create rows in a **Table Control** custom field group, as well as writing to case-level fields.

That means an incoming payload carrying several related items — a list of properties, dependants, or assets — can populate a table in one pass, instead of needing a field for each entry.

Two safeguards come with it:

* Values are checked against the custom field they are being written to, so anything that does not fit the field is reported before it is stored.
* Where an upload could match more than one case, the most recently opened **active** case is used, and closed cases are left alone.

Where an upload cannot be matched to a case, the response now explains exactly what it was looking for, so it is clear what to adjust.

There is more on bringing data into AgileCase in [Incoming Webhooks](/developer-documentation/webhooks/incoming-webhooks.md).

#### Duplicate checking on upload

Uploads can now be set to look for an existing contact before creating a new one, so repeated submissions from the same person are matched to the contact you already hold rather than adding another.

### Improved

#### Email batches handle every address in a list

Address lists on a batch are now checked before each message is handed over for delivery. Blank or malformed entries are set aside, and the email goes out to every valid recipient in the list.

Where a row has no valid address at all, the batch records that against the row, so it is easy to see which entries need attention.

See [Running an Email Batch](/user-documentation/working-with-documents-and-reports/running-an-email-batch.md) for the full process.

#### Cleaner recipient lists on emails

The email details panel now shows only real addresses. Where an address list contains a trailing or doubled comma, the empty entries are filtered out rather than displayed.

#### Clearer registration when an invitation is pending

Registration now recognises the difference between someone accepting an invitation and someone creating a brand new account, so both routes work as expected.

Where an invitation is already waiting for that email address, the message names the firm it came from, making it clear who to speak to about accepting it or having it cancelled.

More on invitations in [Inviting New Users to AgileCase](/administrator-documentation/user-administration-settings/inviting-new-users-to-agilecase.md).

#### Document viewer tidy-up

The document viewer's toolbar icons have been resized to sit consistently with the rest of AgileCase, and a band of unused space has been removed from the top of the viewer, giving the document itself more of the screen.

#### Search box on smaller screens

The main search box now stays visible on screens narrower than 1200 pixels, so search is to hand on smaller laptops and scaled-up displays.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.agilecase.com/release-notes/2025/march-2025.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
