Custom Fields in Email: One Template, Hundreds of Emails

Custom Fields in Email: One Template, Hundreds of Emails

The Afternoon You Lose to Copy, Paste, Check

Every month, the same routine: a spreadsheet with 140 rows, an email you've written a hundred times, and an afternoon of copying amounts, dates and account numbers into separate messages. Somewhere around row 90 your attention slips, and one client receives another client's balance.

Custom fields remove that afternoon. Below: how to plan the fields, prepare the data, write a template that copes with empty cells, test it and keep it current — with examples from an accounting office, a school and a property manager.

Personalisation by Name vs. Per-Recipient Data

Any email tool can put a name in the greeting, but "Hi Anna" doesn't tell Anna anything she needs to act on. What makes an email useful is the data that belongs to her alone:

  • Amounts — the VAT due this month, an outstanding fee, this month's rent.
  • Dates — the payment deadline, the billing period, the next lesson.
  • Counts — lessons attended, hours used, open invoices.
  • References — account, invoice or apartment number, a personal link.
  • Files — a statement or report attached to this recipient's email only.

This is exactly what custom fields in MailerBit are for. Each recipient group has its own set of fields, each contact holds their own values, and each field becomes a merge tag such as {{vat_due}}. The {{name}} and {{email}} tags are always there. One template, hundreds of emails — each with the right numbers for the person reading it.

Step 1: Plan Your Fields Before You Open the Spreadsheet

List every piece of information that changes from one recipient to the next, then give each one a field. MailerBit offers five field types:

  • String — text: names, account numbers, invoice numbers, links, short notes.
  • Integer — whole numbers: lessons attended, open invoices, unit number.
  • Float — decimal numbers: amounts, rates, percentages.
  • Date — deadlines and billing periods.
  • File — a document uploaded for a specific recipient and sent as an attachment.

A few naming rules keep templates readable:

  • Short, lowercase slugs with underscores, no spaces or special characters: amount_due, not Amount Due (EUR).
  • One fact per field. due_date and amount_due are two fields, not one sentence.
  • Mark a field as required if the email makes no sense without it — the import will then reject rows where it's empty.

Note: tags print values as stored. A Date shows as 2026-12-10, and round(2) doesn't add trailing zeros or thousand separators. If readers should see "10 December 2026" or "1,250.00", keep that display version in a String field and use number fields for calculations.

Step 2: Prepare the Data in a Spreadsheet

Each recipient group offers a sample CSV with the columns name, email and one per custom field. Fill it in:

  • One row per recipient. The email address is how MailerBit matches a row to a contact.
  • Number columns hold plain numbers with a dot as the decimal separator: 1250.50, not €1,250.50.
  • Dates use YYYY-MM-DD.
  • Save as UTF-8 CSV so accented names survive.

On import, MailerBit validates each row against the field types and lists rows with errors, so a typo in an amount never reaches anyone. When you re-import to refresh existing contacts, tick Update existing records if email matches. File fields aren't part of the CSV — you upload each recipient's file in the panel.

Step 3: Write the Template — and Plan for Empty Values

In the template editor, the variables of the linked group are listed next to your text. Use them in the subject and the body: Your statement for {{period}}. Tags also support one basic operation between two values (or a value and a number) and filters: {{net_amount * 1.23 | round(2)}}, {{name | upper}}. Available filters: round(n), trim, capitalize, upper, lower.

About fallbacks: there is no "default value" syntax inside tags. If a contact has no value for a field, the tag stays in the email as written — the reader would literally see {{balance}}. Handle empty values in the data: make critical fields required, fill blanks with a sensible value such as 0.00, and move contacts who need a different message into their own group with their own template.

Also write sentences that work for any realistic value. "Your balance is {{balance}}" reads fine at 0 and at 2,000; "Please pay {{balance}} by Friday" doesn't.

Three Examples From Everyday Sending

Accounting office: monthly tax notice

Fields: period, vat_due, pit_due, due_date_text, tax_account.

VAT for {{period}}: {{vat_due}}. Income tax advance: {{pit_due}}. Total: {{vat_due + pit_due | round(2)}}. Please pay by {{due_date_text}} to {{tax_account}}.

Full workflow: monthly client statements for accounting offices.

School: monthly fee and attendance

Fields: student_name, lessons_attended, lessons_planned, fee_amount, report (File).

{{student_name}} attended {{lessons_attended}} of {{lessons_planned}} lessons in {{period}}. Fee: {{fee_amount}}. Attached: {{report}}

The report field attaches each student's own PDF; the tag prints its file name.

Property manager: rent notice

Fields: unit, rent, service_charge, payment_reference.

Apartment {{unit}}: rent {{rent}} + service charge {{service_charge}} = {{rent + service_charge}}, due on the 10th. Reference: {{payment_reference}}.

For the follow-up side, see automated payment reminders that get paid.

Step 4: Test With Real Recipients Before You Send

The template editor preview fills tags with sample data from the linked group. The campaign wizard ends with a Preview step that renders the email for every selected recipient, attachments included. Don't stop at the first one — check the edge cases:

  1. Look for any visible {{. It means a missing value or a typo in a tag name.
  2. Open the contact with the longest name and largest amount.
  3. Open a contact with a zero or minimum value — does the sentence still make sense?
  4. Confirm every attachment belongs to the right person.
  5. Read the subject line, not just the body.

Need a different value for this send only? The Variables step overrides values per recipient for this campaign — by hand or via a CSV round-trip — without touching the contact's profile. To see the email as clients will, add yourself to the group with realistic data and send yourself a one-off email from the same template.

Keeping Data Fresh for Recurring Sends

Recurring campaigns read the current values from your contacts on every run. The template and the schedule stay the same; only the data changes. A simple monthly routine:

  1. Update your master spreadsheet.
  2. Import the complete sheet with every column, not just the one that changed. An updated contact keeps only the values in that import, so a missing column leaves a raw tag.
  3. After the import, upload this cycle's files for each recipient.
  4. Spot-check a few recipients in the preview.

Overrides from the Variables step stay with the campaign and win over contact data on every run, so keep monthly values in the contacts, not in overrides. A period field such as "November 2026" makes stale data obvious.

Privacy: Per-Recipient Data Deserves Care

  • Store only the fields you actually put into emails. Skip national ID numbers, passwords and anything a recipient wouldn't expect in an email.
  • Keep amounts and sensitive details out of subject lines — they show up in notifications and on lock screens.
  • The email column is the key: a wrong address puts someone's data in a stranger's inbox. Update addresses as soon as clients report a change.
  • Remove former clients and fields you no longer use.
  • Give colleagues their own access to your MailerBit team instead of sharing one login.

How MailerBit Helps

MailerBit is built around this workflow: typed custom fields per recipient group, CSV import with validation and update-by-email, merge tags with basic math and filters, File fields sent as attachments (up to 10 or 25 MB depending on plan), a per-recipient preview, per-campaign overrides, and recurring schedules on the Growth and Scale plans.

Still assembling a monthly email by hand? Create a MailerBit account, add your fields, import your sheet and preview the first email with real data. That afternoon of copy and paste is the first thing you'll get back.

Related articles

From CRM or Accounting Export to Individual Client Emails

From CRM or Accounting Export to Individual Client Emails

Your CRM or accounting software already knows each client's balance, due date and account details. How to export that data to CSV and turn it into individual client emails.

How to Choose a Tool for Per-Recipient Client Emails

How to Choose a Tool for Per-Recipient Client Emails

Reminders, statements and fee notices need a tool built around per-recipient data, not one message for everyone. A practical checklist of what to look for before you choose.

Why Per-Recipient Reminders and Statements Get Acted On

Why Per-Recipient Reminders and Statements Get Acted On

A reminder that shows the client's own amount, due date and account number gets paid; a generic one gets postponed. Why individual emails work, and how to send them without extra work.

All articles →