You can use placeholders throughout Senta to automatically fill in personalised details when sending emails, notifications and text messages.

So instead of having to send individual messages, you can send customised messages as part of an automatic Job or a bulk email, like this: 

Dear {to.firstname}, 

This makes it really easy to deliver a very personalised service to your clients, with very little effort on your part. 


Where you can use placeholders

You can use placeholders in:

  • Emails set up as part of a job
  • Notifications set up in a job
  • Text messages (SMS) set up as part of a job
  • Bulk emails you send via the client lists 

You can also use placeholders to add client information to: 

  • Task descriptions 
  • Task titles 
  • Job titles

Placeholder formatting

All placeholders in Senta use the format {placeholder.fieldreference} .

The prefix. listed as "placeholder" in the example above, will vary depending on where the field reference is being pulled from:

- {client.fieldreference} if the placeholder is pulling from static client data

- {job.fieldreference} if the placeholder is pulling from job data e.g. a form that is filled is as part of a recurring job

- {to.fieldreference} if the placeholder is pulling contact data when writing emails or texts

- {from.fieldreference} if the placeholder is pulling sender information (user information) when writing emails or texts

The second part, listed as "fieldreference" in the example above, will pull from the field reference part of a field on a form. You can view this for any field by going to Settings > Forms, and then choosing the specific form.

So in the image above, the format would be {client.dateofbirth}. You can set your own field references when creating fields, or you can change the field references for any existing fields in Senta.

To test any function in Senta, you can use the expression tester.

Placeholders you can use

You can use many placeholders; below are some examples of commonly used placeholders: 

From the Contacts tab, for emails/text messages (if the email recipient is a Senta user, this will be pulled from the user details in Your accounts > Your profile > General:

{to.firstname} - pulls the first name of the contact 

{to.lastname} - pulls the last name of the contact

{} - pulls the contact's email address

From the sender for emails/text messages:





From the 'client' tabs:

{client.title} - Fills the client's record name (e.g. Acme Limited or Acme LLP)

{client.telephone} - Fills the client's telephone number

From jobs:

{} - Fills the Job date

From contacts:

{client.contact1.firstname} - contact1 refers to the Primary contact

{client.contact2.lastname} - contact2 refers to the Secondary contact.

For letters or emails, you might like to use the today placeholder: 


You can also change the date format of the today placeholder:

      {today | D MMMM YYYY}

For emails to your clients about documents, tasks, etc, there is also the following special placeholder that will show the aggregated number of items that are waiting"


If you are sending emails to users within Senta as part of a client job, you might like to include a link to that client record within your email. You can add this placeholder to the end of your Senta URL:


   For example:{client._id}

Finding the field reference 

To find out the field reference for a field, just go to Settings > Forms and click on the form where the field is. You will find the field reference shown against the field. 

To find out the field reference for a key date, go to Settings > Jobs and click on the Job in question. You will find a field reference against each key date that is set up.

Fallback placeholders

You can use "fallback" placeholders, for example {to.nickname/to.firstname} will use the first value if it's available, or the second one if not.

Fallback placeholders can be used in chains, e.g. {to.nickname/to.firstname/to.somethingelse} .

You can also use put "literal" placeholders in using quotation marks e.g. {to.nickname/to.firstname/"Esteemed customer"} .

Please note: The fallback placeholder function will not work correctly if the field you're using is a number, in this case it would be best to use an IF function instead.

Client fields 

You can also use any field from the CRM as a placeholder. This means any field on any form! 

For example: 





This gives you a great deal of flexibility to personalise messages from Senta. 

You can also use this for information that has been entered when setting clients up with Services, e.g. during VAT setup or payroll setup. If it's visible on the client tabs, then you use 


Client contact role fields

It is possible in Senta to set up client contact roles as explained in our guide. If you have provided a field reference for your created role, you can use this within a placeholder. 

As an example, I have created a Payroll contact with the field reference payrollcontact:

To use this in a placeholder, I will use the client prefix, followed by the client contact role field reference (payrollcontact), followed by the field reference from a field from the Contact details form. Here are some examples:




User and Manager field types

You can use placeholders to pull in information from a User or Manager field type. See our guide on field types here.

For example, if you had a Tax Return specialist field with the User field type and set the field reference as "taxreturnspecialist", you can use the following placeholders to pull specific information about that user:





Key dates and other job fields 

If you define a key date in a job, you can use the name of the key date as a placeholder. For example, suppose you have a VAT job and in the job you define a key date "VAT return due" and you give it a field reference of "vatreturndue". 

You can then use that as a placeholder: 


This means that you can produce very clear messages that refer to specific deadlines, e.g. tax payment dates and so on: 

You must submit your return by {job.vatreturndue} 

You can also use form fields from jobs too. 

So, for example, if you have a repeating job that asks you to fill in a form, you can use values from the form in your emails. You can refer to the field by its internal field name as a placeholder like this: 

The amount you need to pay is {job.payeamount}

Please remember however, for data that you've previously captured, i.e. not in this job, then you need to refer to it using the format {client. 

Your payroll reference is {client.accountsofficereference}


To pull a list of services offered to a client into an email, use the following formatting:


- {service.title}

{service.sales | optional}

{service.terms | optional}

{if(service.fees.setup)} £{service.fees.setup} setup {endif}

{if(service.fees.monthly)} £{service.fees.monthly} each month {endif}

{if(service.fees.annual)} £{service.fees.annual} per year {endif}


{service.sales} refers to the "sales description" field on any service

{service.terms} refers to the "sales terms" field on any service

{services.fees.setup} refers to the "setup fee" field on any service

{services.fees.monthly} refers to the "monthly fee" field on any service

{services.fees.annual} refers to the "annual fee" field on any service

You can turn these fields on via Settings > General settings > Extras:

| optional} means that Senta will only try to pull through data from a field if it contains any information

The "each" function means that Senta will look for the title, sales and terms for each service, and pull that information into an email. For example, if I select VAT and payroll for a client, the following information will display:

- Payroll service

Example sales description

Examples sales terms

£100 setup

£500 each month

- VAT service

Example sales description

Example sales terms

£100 setup

£2000 per year

Placeholders from Companies House data

If you have a Company number entered on the Companies House tab of a client record, information will be synchronised from Companies House and displayed on that tab. 

You can use the following placeholders to refer to this information:

Company details












Address details






Accounts details









Confirmation statement details




Please note, we do not recommend using Companies House date placeholders with recurring jobs. These placeholders will always pull through the correct current dates for the client, so jobs from previous years will be updated to have the current year dates, which may lead to incorrect key dates listed against jobs.


Write with any of the following placeholders as a suffix to generate the corresponding URL for that client:

Company Overview:



Filing History:




Persons with significant control:


Linking fields

Field references can also be used to sync fields between multiple forms as long as they share the same field reference.

For example, you might wish to record what country a client is based in via a form in a job, and also as a field within the Client details form. If you use the same field reference for both fields, the information will automatically update on both fields with the same value, without the need to register the information twice.

Field on job form:

Field within the Client details form:

To learn more about forms, please see the following guide.

Formatting placeholders

You can change the way placeholders are displayed by adding special formatting codes to the placeholders, like this: 

{client.address1 | optional} = This placeholder is optional and there won't be an error if it doesn't exist 

{client.address1 | newline} = This placeholder might be blank. If it is, nothing will be added. If it's not, put a newline after it. 

This is very handy for addresses: 

{client.address1 | newline}{client.address2 | newline}{client.address3 | newline}{client.address4 | newline} 

This would output as many lines of address as there are, with each on a new line. 

Date formatting

Dates have an extra special feature available in email bodies -- you can output them in different formats when you use them, like this:

{client.exampledate| DD/MM/YYYY} 

Using the | character, followed by a date format code, tells Senta to format the date in a particular way: 

For 1st February 2019

{client.exampledate| D} = 1 

{client.exampledate| DD} = 01 

{client.exampledate| Do} = 1st

{client.exampledate| dd} = We

{client.exampledate| ddd} = Wed

{client.exampledate| dddd} = Wednesday

{client.exampledate| MM} = 02

{client.exampledate| Mo} = 2nd

{client.exampledate| MMM } = Feb 

{client.exampledate| MMMM } = February 

{client.exampledate| YY} = 19

{client.exampledate| YYYY} = 2019

{client.exampledate| YY-YY} = 18-19

{client.exampledate| YYYY-YY} = 2018-19

{client.exampledate| YY/YY} = 18/19

{client.exampledate| D/M} = 1/2

{client.exampledate| DD/MM} = 01/02

{client.exampledate| DD-MM-YY} = 01-02-19 

{client.exampledate| D MMMM YYYY} = 1 February 2019

{client.exampledate| w} = 5 (n.b. this is a week number)

{client.exampledate| wo} = 5th

{client.exampledate| Q} = 1 (n.b. this is a quarter number)

{client.exampledate| Qo} = 1st

You can also pull through today's date using the placeholder {today}

Arithmetic in placeholders

You can perform arithmetic in placeholders too.  For example: 

    {(client.monthlyFees * 12) + client.annualFees}

Functions in placeholders

One of the most powerful features of placeholders is support for Excel-like functions, e.g. IF and FIXED.  You can use functions to perform powerful operations in your placeholders.  

For example, some notification email placeholders use a syntax which means that the wording of the email can vary depending on e.g. how many tasks have been assigned to the client.

You can find out more about functions on the functions page


If you assign 1 task to a client, they will receive an email with the subject line "1 new task has been assigned to you..."

If you assign 3 tasks to a client before sending the notification email from your outbox, they will receive an email with the subject line "3 new tasks have been assigned to you..."

This uses the IF function, in much the same way that Excel does, using the format

    {if(clause, option1, option2)}

If "clause" is true, option1 will be used. If not, option2 will be used.

So in the email below:

    {count} new task {if(count>1, "s")} {if(count=1, "has","have")} been assigned to you


    1 new task has been assigned to you...

    3 new tasks have been assigned to you...