Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Info

This guide has been reviewed against our global client base and classed as relevant to the following regions: UK, APAC, UAE

This article contains a list of merge codes that are not currently available in the Letter Template Editor (LTE).

These can be provided to clients on request, free of charge. Commonly requested merge codes should be flagged with CST, who will request for them to be added to the LTE.

InfoIf you need more information on using merge codes see: Using merge codes with Letter Template Editor


Expand
titleApplicant


DataMerge CodeExample Output
Company attention name<Applicant.CmpAttnName>John Doe
Negotiator Image

Financial Services Permission Given<Applicant.FSGiven ? "Yes" : "No">Yes / No
Has made offers (sales only)<Referral.Applicant.HasOffers ? "Yes" : "No">Yes / No
Most Recent Offer Property Address<Applicant.LastOffer.Property.Address.FullAddress>Atlantic Terrace, New Polzeath, PL27 6UG

Contact related

DataMerge CodeExample Output
Contact Categories<Applicant.PrimaryContact.CategoryString.Replace("; ", Convert.ToChar(13).ToString())>Age Range: 20-29, 30-39

Nationality: American Lists all ticked contact categories with each catagory on a seperate line. It is not possible to only list a specific category.

Requirements

DataMerge CodeExample Output
List All Requirements<Applicant.Requirements.ToString()>House, 1+ Total Bedrooms, Share of freehold, Leasehold, Lease 30+ years, Areas: LEE,DEV
Areas List<Applicant.Requirements.GetAreaOrAddressInfo()>Areas: LEE,DEV
Lettings Tenure

<Applicant.Requirements.GetAttributeListValue
(Applicant.Requirements.Department.LetTenureList, Applicant.Requirements.LetTenure, "tenure")>

Long Let
Sales Tenure

<Applicant.Requirements.GetAttributeListValue
(Applicant.Requirements.Department.TenureList, Applicant.Requirements.Tenure, "tenure")>

Leasehold, Share of freehold



Expand
titleClient Accounts

Landlord statement

DataMerge CodeExample Output
Landlord's 1st property code<Statement.Landlord.Properties[0].Code>LDS140001
Individual item VAT rate<VatRate.GetRate(StatItem.NomTran.VatCode,
StatItem.NomTran.Date)>
20.00
Statement Notes - General statement notes<Statement.Landlord.StatFloatNote>
Statement Notes - Per property note

<Statement.Layout == "PP" ? Statement.Landlord.GetPrpLldSettings
(StatItem.PrpCode).GetValue("StmNote", "") : "">


Landlord and tenant invoices

DataMerge CodeExample Output
Individual item VAT rate<VatRate.GetRate(NomTran.VatCode,NomTran.Date)>20.00
Associated Property Address{script: if (Charge.Property != null && Charge.Property.IsPartial)

{ Charge.Property.Refresh(); } return (Charge.Property != null && String.IsNullOrEmpty(Charge.Property.Address.FullAddress) ? "Payment Receipt" : Charge.Property.Address.FullAddress);}

1 Park Court, 40 Park Cross Street, Leeds, LS1 2QH

Direct debit

DataMerge codeExample Output
Tenant - Envelope Name<DirectDebit.Tenant.EnvelopeName>Mr J Doe
Tenant - All mailing salutations<DirectDebit.Tenant.MailingSaltn>Mr Doe
Tenant - Mailing Address (envelope format)<DirectDebit.Tenant.MailingAddress.AddressWithReturns>1 Park Court

40 Park Cross St

Leeds

LS1 2QH

Tenant - Bank Account Number<DirectDebit.Tenant.MainAccount.AccountNum>00000000
Tenant - Sort Code<DirectDebit.Tenant.MainAccount.SortCode>00-00-00
Direct Debit - Service User Number<LoggedNegotiator.Config.DirectDebitServiceUserNo>XXXXXX
Direct Debit - Next collection date<DirectDebit.NextCollection.ToShortDateString()>21/11/2016
Direct Debit - Amount<Formatter.FormatPrice(DirectDebit.Amount, 2)>£333.33
Direct Debit - Next Collection Date<DirectDebit.Frequency == 1 ? (DirectDebit.FrequencyType == "M" ? "on or immediately after the " + Formatter.GetFullDateString(DirectDebit.NextCollection, "dd") + " day of each month" : "every " + DirectDebit.FreqTypeName.TrimEnd("s".ToCharArray())) : "every " + DirectDebit.Frequency.ToString() + " " + DirectDebit.FreqTypeName>on or after the 21 day of the month
Direct Debit - Reference<DirectDebit.Reference>XXXXXXXX



Expand
titleDiary

Appointments

DataMerge CodeExample Output
Created date<Entry.Register.ToShortDateString()>16/05/2016
Created by<Entry.MadeBy.Name>John Doe
Start time<Entry.DateTime.ToShortTimeString()>13:51
End time

<Entry.DateTime.AddMinutes

(Entry.Duration).ToShortTimeString()>

14:51
Appointment type (in lower case)<Entry.TypeName.ToLower()>market
appraisal
Appointment type, including the word "Appointment"<Entry.TypeName + (Entry.TypeName.ToLower().Contains("appointment") ? "" : " Appointment")>Market
Appraisal Appointment
Appointment type, including the word "Appointment" (in lower case)<(Entry.TypeName + (Entry.TypeName.ToLower().Contains("appointment") ? "" : " Appointment")).ToLower()>Market
appraisal appointment
Accompanied?<Entry.UnAcc ? "Accompanied" : "Unaccompanied">

Accompanied

Unaccompanied

Negotiator Image

Associated Contact Salutation<!String.IsNullOrEmpty(Entry.TableCode) ? Entry.AssociatedContact.MailingSaltn : Entry.Property.AllMailingSaltns>Mr Doe
Property Address (if a property has been added)<!String.IsNullOrEmpty(Entry.PrpCode) ? Property.Address.FullAddress : "">

1 Park Court,

40 Park
Cross Street,

Leeds,
LS1 2QH

Property URL<String.IsNullOrEmpty(Entry.Property.URL) ? MergeHelper.MergeString(LoggedNegotiator.Config.PrpUrl, Entry.Property) : Entry.Property.URL>

http://
www.example
.com

/sales/
LDS140003

Additional negotiators

DataMerge CodeExample Output
List all additional negotiator names<script:
string ret = "";
foreach (Negotiator otherNegotiator in Entry.OtherNegotiators)
{
ret += otherNegotiator.Name + ", ";
}
ret = Formatter.CleanList(ret);
return ret;>

John Doe,

Joe Bloggs

Negotiator 1 - Name<Entry.OtherNegotiators[0].Name>John Doe
Negotiator 1 - Title<Entry.OtherNegotiators[0].Title>Senior Negotiator
Negotiator 1 - Phone<Entry.OtherNegotiators[0].GetPhone("b")>0113 288 2903
Negotiator 1 - Email<Entry.OtherNegotiators[0].GetPhone("e")>jdoe@
example.com
Negotiator 1 - Address<Entry.OtherNegotiators[0].Office.Address.FullAddress>1 Park Court, 40 Park Cross St, Leeds LS1 2QH
Negotiator 1 - Image file path<Entry.OtherNegotiators[0].ImgFilePath>jdoe@
example.com



Expand
titleGuarantors

Tenancy guarantors (arranging tenancy only)

DataMerge CodeExample Output
Additional tenant 1 - guarantor name<Tenancy.GetTenantGuarantors()[1].Contact.Name>John Doe
Additional tenant 1 - guarantor address<Tenancy.GetTenantGuarantors()[1].Contact.Address.AddressWithReturns>1 The Headrow
Leeds
LS1 1AA
Additional tenant 1 - guarantor email<Tenancy.GetTenantGuarantors()[1].Contact.GetPhone("e")>jdoe@
example.com
Additional tenant 1 - guarantor home<Tenancy.GetTenantGuarantors()[1].Contact.GetPhone("h")>0113 288 2903
Additional tenant 2 - guarantor name<Tenancy.GetTenantGuarantors()[2].Contact.Name>John Doe
Additional tenant 2 - guarantor address<Tenancy.GetTenantGuarantors()[2].Contact.Address.AddressWithReturns>1 The Headrow
Leeds
LS1 1AA
Additional tenant 2 - guarantor email<Tenancy.GetTenantGuarantors()[1].Contact.GetPhone("e")>jdoe@
example.com
Additional tenant 2 - guarantor home<Tenancy.GetTenantGuarantors()[1].Contact.GetPhone("h")>0113 288 2903

Tenancy guarantors (current tenancy only)

DataMerge CodeExample Output
Additional tenant 1 - guarantor name<Tenancy.GetTenantGuarantors(Tenancy.Tenants[1])[0].Contact.Name>John Doe
Additional tenant 1 - guarantor address<Tenancy.GetTenantGuarantors(Tenancy.Tenants[1])[0].Contact.Address.AddressWithReturns>1 The Headrow
Leeds
LS1 1AA
Additional tenant 1 - guarantor email<Tenancy.GetTenantGuarantors(Tenancy.Tenants[1])[0].Contact.GetPhone("e")>jdoe@
example.com
Additional tenant 1 - guarantor home<Tenancy.GetTenantGuarantors(Tenancy.Tenants[1])[0].Contact.GetPhone("h")>0113 288 2903
Additional tenant 2 - guarantor name<Tenancy.GetTenantGuarantors(Tenancy.Tenants[2])[0].Contact.Name>John Doe
Additional tenant 2 - guarantor address<Tenancy.GetTenantGuarantors(Tenancy.Tenants[2])[0].Contact.Address.AddressWithReturns>1 The Headrow
Leeds
LS1 1AA
Additional tenant 2 - guarantor email<Tenancy.GetTenantGuarantors(Tenancy.Tenants[2])[0].Contact.GetPhone("e")>jdoe@
example.com
Additional tenant 2 - guarantor home<Tenancy.GetTenantGuarantors(Tenancy.Tenants[2])[0].Contact.GetPhone("h")>0113 288 2903

Guarantor screen letters

DataMerge CodeExample Output
Guarantor name<Extra.Contact.Name>John Doe
Guarantor address<Extra.Contact.Address.AddressWithReturns>1 The Headrow
Leeds
LS1 1AA
Guarantor email<Extra.Contact.GetPhone("e")>jdoe@
example.com
Guarantor home phone<Extra.Contact.GetPhone("h")>0113 288 2903



Expand
titleLandlord


DataMerge CodeExample Output
Landlord Registration Details <Property.Lettings.GetLandlordRegistration().ID1> LL1456789
Joint Landlord Registration Number

<script: Contact secLandlord =
Property.Lettings.Landlord.
GetJointLandlord(0); if
(secLandlord != null && secLandlord.
IDChecks.Count
!= 0 &&
Property.LocalAuthority != null)
{ IDCheck idchk = (from ci in
secLandlord.IDChecks
orderby ci.ID1Expire descending
where ci.IsRegistration
&& ci.Active && ci.RegCode ==
Property.LocalAuthority.Code
select ci).FirstOrDefault();
return idchk != null ? idchk.
ID1 : ""; } return ""; >

LL1456790
NOTES
 1.To pull though, the Property must exist
 2.the property cannot be 'Newly Added'  
 3.the Property Must have a Local Authority
 4.There must be a Landlord Primary Contact
 5.ID Check must be a Landlord Registration
6.it must be ACTIVE



Expand
titleProperty


DataMerge CodeExample Output
Sales or lettings<LoggedNegotiator.Config.CurrentAppMode == "L">True / False
Brief Description (with ellipsis)<Formatter.WordEllipsis(Property.Brief, 300)>
Price (for advertising)<LoggedNegotiator.Config.CurrentAppMode == "L" ?
(Property.Lettings.RentQual == "PA" ? "Rent on application" : Property.Lettings.RentUIFormattedWithPeriod) :
(Property.Sales.PriceQual == "PA" ? Property.Sales.PriceQualName
 : Property.Sales.PriceQualName + ": " +
Property.Sales.PriceRangeFormatted)>
£500 per month / Guide price: £250,000
Price (for advertising - short)<LoggedNegotiator.Config.CurrentAppMode == "L" ?
(Property.Lettings.RentQual == "PA" ? "Rent on application" : Property.Lettings.RentUIFormattedWithPeriod.Replace
("per month", "PCM").Replace("per week", "PW").Replace
("per annum", "PA")) : (Property.Sales.PriceQual == "PA" ?
Property.Sales.PriceQualName : (Property.Sales.PriceQual
== "OR" ? "OIRO " : Property.Sales.PriceQual == "OE" ?
"OIEO " : Property.Sales.PriceQualName) + ": " +
Property.Sales.PriceRangeFormatted)>
£500 PCM / OIRO: £250,000
Price (for advertising - no sales qualifer)<LoggedNegotiator.Config.CurrentAppMode == "L" ?
(Property.Lettings.RentQual == "PA" ? "Rent on application" : Property.Lettings.RentUIFormattedWithPeriod) :
(Property.Sales.PriceQual == "PA" ? Property.Sales.PriceQualName
 : Property.Sales.PriceRangeFormatted)>
£500 per month / £250,000
Price Qualifier (with Price Reduction Qualifier)<LoggedNegotiator.Config.CurrentAppMode == "S" ?
((Property.Sales.Reduced != DateTime.MinValue) &&
(7 <= (DateTime.Now - Property.Sales.Reduced).Days)
 ? "NEW PRICE" : Property.Sales.StatusName.Replace
(" - Available", "").Replace(" STC", "").Replace
(" - Unavailable", "").ToUpper()) :
(Property.Lettings.StatusName.Replace
(" - Available", "").Replace(" STC", "").Replace
(" - Unavailable", "").ToUpper())>
NEW PRICE / FOR SALE
Rent (in words)<Formatter.PriceWord(Convert.ToInt32
(Math.Floor(Property.Lettings.RentUI))
+ " pounds" + (Property.Lettings.RentUI
 % 1 != 0 ? " and " + Formatter.PriceWord
(Convert.ToInt32((Property.Lettings.RentUI
- Math.Floor(Property.Lettings.RentUI))*100)) + "
pence" : "")>
five hundred and thirty-five pounds
Annual Rent<Formatter.FormatPrice(Property.Lettings.ARent, 2)>£57,204.05
Annual Rent (in words)<Formatter.PriceWord(Convert.ToInt32(Math.Floor
(Property.Lettings.ARent))) + " pounds" +
(Property.Lettings.ARent % 1 != 0 ? " and " +
Formatter.PriceWord(Convert.ToInt32
((Property.Lettings.ARent - Math.Floor
(Property.Lettings.ARent))*100)) + " pence" : "")>
fifty-seven thousand, two hundred and four pounds and five pence
Sales Price (in words)<Formatter.PriceWord(Convert.ToInt32(Property.
Sales.Price))> pounds
twenty-two thousand, one hundred and one pounds
Offer Price (in words)<Formatter.PriceWord(Convert.ToInt32(Offer.OfferPrice))
> pounds
twenty-two thousand, one hundred and one pounds
Available From<Property.AvFrom < DateTime.Now ? "Available Now" :
"Available from " + Property.AvFrom.ToShortDateString()>
Available Now / Available from 05/01/2016
Negotiator Image

Company Vendor Staff Contact<Property.PrimaryContact.AsCompany().GetStaffPhone
(Property.PrimaryContact.AsCompany().CurrentAttn, "e")>
jbloggs@reapit.com
 Vendor Solicitor Bank - Account name <Property.Sales.Vendor.Solicitor.
MainAccount.AccountName>
 Lloyds
 Vendor Solicitor Bank - Account number <Property.Sales.Vendor.Solicitor.MainAccount.Account
Num>
 01234567
 Vendor Solicitor Bank - Sort Code <Property.Sales.Vendor.Solicitor.MainAccount.
SortCode>
 01-23-45


Info
iconfalse
titleProperty Extra

Development

DataMerge CodeExample Output
Site phone<Property.GetSiteMasterPrp().SiteOffice.SitePhone>
Open hours<Property.GetSiteMasterPrp().SiteOffice.OpenHours>
Staff name 1<Property.GetSiteMasterPrp().SiteOffice.AllStaff[0].ToString()>
Staff name 2<Property.GetSiteMasterPrp().SiteOffice.AllStaff[1].ToString()>

Marketing

DataMerge CodeExample Output
Sales Board Type<Property.Sales.SBType == "F" ? "Flag Board" :
Property.Sales.SBType == "V" ? "V Board" : "None">
Flag Board
Sales Board Status<Formatter.CodesToNames(Property.Sales.SBStat,
UserEnvironment.SBStatusList)>
Sold
Sales Board Previous Status<Formatter.CodesToNames(origPrpExtra.GetExtra("pSBStat", ""), UserEnvironment.Instance.SBStatusList)>For Sale
Sales Board Date<Property.Sales.SBDate.ToShortDateString()>14/12/2015
Sales Board Notes<Property.BoardNotes>
Internet URL<String.IsNullOrEmpty(Property.URL) ? MergeHelper.MergeString(LoggedNegotiator.Config.PrpUrl, Property) : Property.URL>http://www.
example.com
/sales/
LDS150001
URL Text<Property.UrlText>Property Link
No Internet Advertising<Property.NoIntAdv>True/False
Council Tax Band<Property.ExtrasField.GetExtra("pCouncilTaxBand", "")>D
Old Property Reference<Property.OldCode>CHLCH_814
Extra descriptions<Property.ExtrasField.GetExtra("pLongDesc", "")>
Legal Matter Number<Property.ExtrasField.GetExtra("pMatterNo", "")>366853

EPC screen

DataMerge CodeExample Output
BER Rating<Property.ExtrasField.GetExtra("pBERExempt", false) ? "Exempt" : Property.ExtrasField.GetExtra("pBERRating", "To be confirmed")>C3
EPC Band<Property.HipEerBand>C

Attributes screen

DataMerge CodeExample Output
Department Code<Property.Attributes.DepCode>G
All Attributes<Property.Attributes.ToString()>2 Plots, Leasehold 2 years 10 months, 4 Total Bedrooms [...]
All Attributes (bullet point list)<Convert.ToChar(8226).ToString()+ " " + Property.Attributes.ToString().Replace(", ", Convert.ToChar(13).ToString() + Convert.ToChar(8226).ToString() + " ")>
  • 2 Plots
  • Leasehold 2 years 10 months
  • 4 Total Bedrooms
  • [..]

Attribute columns

DataMerge CodeExample Output
Attribute column 1 value (Type)<Property.Attributes.MakeAtts("1")>House
Attribute column 2 value (Style)<Property.Attributes.MakeAtts("2")>End of terrace
Attribute column 3 value (Situation)<Property.Attributes.MakeAtts("3")>Garden, Patio
Attribute column 4 value (Special)<Property.Attributes.MakeAtts("4")>Outbuilding
Attribute column 5 value (Parking)<Property.Attributes.MakeAtts("5")>Garage, Residential Parking
Attribute column 6 value (Age)<Property.Attributes.MakeAtts("6")>Period
Attribute column 7 value (Locality)<Property.Attributes.MakeAtts("7")>Rural

Rooms/area

DataMerge CodeExample Output
Square Metres<Property.Attributes.Metres>300
Square Metres To<Property.Attributes.MetresTo>400
Price Per Square Foot (Sales)<Formatter.FormatPrice(Property.Sales.Price / Property.Attributes.Feet)>£2,500.00
Price per square foot (lettings)<String.Format("{0}/Sq.Ft. {1}", Formatter.FormatPrice(Property.Lettings.RentUI / Property.Attributes.Feet, 2), Property.Lettings.RentPeriodNameShort)>£25.00/Sq.Ft. p/a
Hectares<Math.Round(Property.Attributes.Acres * 0.4047, 1)>2.6
Number of units<Property.Attributes.Plots>4

Appliances, insurance and safety

DataMerge CodeExample Output
Start Date<Property.Lettings.GetLastCert("GS").
StartDate.ToShortDateString()>
05/04/2016
Expiry Date<Property.Lettings.GetLastCert("GS").
EndDate.ToShortDateString()>
05/04/2017
Policy Number<Property.Lettings.GetLastCert("GS").
PolicyNo>
AA65413
Supplier<Property.Lettings.GetLastCert("GS").
Supplier.Name>
British Gas, Leeds
Notes<Property.Lettings.GetLastCert("GS").Notes>

Financial screen (sales only)

Data Merge CodeExample Output
Date Instructed - New Instruction<(DateTime.Now - Property.Sales.ForSDate).Days
<= 14 ? "New Instruction" : "">
New Instruction
Agency Agreement Expiry Weeks<(Property.Sales.AgExpiry - Property.Sales.ForSDate).Days / 7>6
Joint Agent 1 Name<Property.Sales.JointAgents[0].Name>Savills
Joint Agent 1 Address<Property.Sales.JointAgents[0].Address.AddressWithReturns>PO Box 227
Rotherham
S98 1PD
Joint Agent 2 Name<Property.Sales.JointAgents[1].Name>Savills
Joint Agent 2 Address<Property.Sales.JointAgents[2].Address.AddressWithReturns>PO Box 227
Rotherham
S98 1PD
Estimated Commission VAT<Formatter.FormatPrice((Convert.ToDecimal(Property.Sales.
CommAmount) * LoggedNegotiator.Config.Vat) /100, 2)>
£6,000.00
Estimated Commission Amount (without VAT)<Property.Sales.CommAmountFormatted>£30,000
Estimated Commission plus VAT<Formatter.FormatPrice(Convert.ToDecimal(Property.Sales.
CommAmount) + (Convert.ToDecimal(Property.Sales.
CommAmount) * LoggedNegotiator.Config.Vat) /100, 2)>
£36,000.00
Estimated Commission plus VAT formatted as %<(Convert.ToDecimal(Property.Sales.Comm) + Decimal.Multiply((LoggedNegotiator.Config.Vat / 100.00), Convert.ToDecimal(Property.Sales.Comm))).ToString("#.#") + "%">1.6%
Estimated Commission plus VAT formatted as %<(Convert.ToDecimal(Property.Sales.Comm) + Decimal.Multiply((LoggedNegotiator.Config.Vat / 100.00), Convert.ToDecimal(Property.Sales.Comm))).ToString("#.#") + "%">1.6%
Estimated Commission with decimals from Asking Price (if record is Exchanged it will pull through Exchange Commission)<Property.Sales.ExchComm != 0 ? Property.Sales.ExchCommFormatted : Property.Sales.Comm != 0.0 ? Formatter.FormatPrice(Math.Round(Convert.ToDecimal(Property.Sales.
Comm) / 100.0 * Convert.ToDecimal(Property.Sales.Price), 2),2) : Property.Sales.FixedCommFormatted>
£3249.38
Vendor Estimated Price<Formatter.FormatPrice(Convert.ToDouble(Property.ExtrasField.GetExtra
("pVendEst", "")),2)>
£21,000
Minimum match price<Property.Sales.MinPriceFormatted>£400,000
Maximum match price<Property.Sales.MaxPriceFormatted>£500,000
Matching price range<String.Format("{0} to {1}", Property.Sales.PriceFormatted, Property.Sales.MaxPriceFormatted)>£400,000 to £500,000

Rent/fee details (lettings)

DataMerge CodeExample Output
Letting Fee Reducing to % (1)<Formatter.GetPercentString(Property.Lettings.FeeRedPer1)>5%
Letting Fee Reducing to months (1)<Property.Lettings.FeeRedMonth1>6
Letting Fee Reducing to % (2)<Formatter.GetPercentString(Property.Lettings.FeeRedPer2)>2.5%
Letting Fee Reducing to months (2)<Property.Lettings.FeeRedMonth2>12
Joint Agent 1 Name<Property.Lettings.JointAgents[0].Name>Savills
Joint Agent 1 Address<Property.Lettings.JointAgents[0].Address.AddressWithReturns>PO Box 227
Rotherham
S98 1PD
Joint Agent 2 Name<Property.Lettings.JointAgents[1].Name>Savills
Joint Agent 2 Address<Property.Lettings.JointAgents[2].Address.AddressWithReturns>PO Box 227
Rotherham
S98 1PD
Deposit required<LoggedNegotiator.Config.CurrentAppMode == "L" ? Property.Lettings.DepositSumFormatted : "">£500.00

Rooms

DataMerge CodesExample Output
Accommodation Summary - comma separated<Property.AccSum.Trim().Replace(Convert.ToChar(13).ToString(), ", ")>21 houses, 716 acres, Two main boat houses, A harbour, Bantham Ham, Bantham Beach,
Accommodation Summary - bullet point separated inline<Property.AccSum.Trim().Replace(Convert.ToChar(13).ToString(), " • ")>21 houses • 716 acres • Two main boat houses • A harbour • Bantham Ham • Bantham Beach
Accommodation Summary - with bullet point on each line<"• " + Property.AccSum.Trim().Replace(Convert.ToChar(13).ToString(), Convert.ToChar(13).ToString() + "• ")>• 21 houses
• 716 acres
• Two main boat houses
• A harbour
• Bantham Ham
• Bantham Beach

Keys

Keys held office name<UserEnvironment.Offices[Property.KeyOffCode].Name>Leeds
Keys held office address<UserEnvironment.Offices[Property.KeyOffCode].
Address.AddressWithReturns>
1 The Headrow
Leeds
LS1 1AA
Key Number<Property.KeyNo>123
Viewing arrangements<Property.Viewing>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Keys out with<Property.KeyWith>John Doe




Expand
titleProperty Pictures / Virtual Tour

Details (brochures + window cards)

DataMerge CodeExample Output

Virtual Tour

<Property.Vtour>

<Property.Vtour2>



 Main Photo <Picture> <Picture Hires>
 Photo 2 <Picture 1>  <Picture 1 Hires> 
 Photo 3  <Picture 2>  <Picture 2 Hires> 
 Floorplan 1<Floorplan><Floorplan Hires>
 Floorplan 2<Floorplan 1><Floorplan 1 Hires>If there is more than 2 floors, use these merge codes as <Floorplan> will not work. Use this instead: <"{Image " + Property.GetPictures("FP")[0].URL + "}">, <"{Image " + Property.GetPictures("FP")[1].URL + "}"> and continue with numbering system if there are more floors.
 Map 1 <Map> <Map Hires>
 Map 2 <Map 1> <Map Hires 1>
 EPC <EPC> N/AHigh resolution EPCs are not stored
 Map or Photo <"{Image " + (0 < Property.GetPictures("MA").Count ? Property.GetPictures("MA")[0] : Property.GetPictures("PH")[3]).URL + "}">
Print a map if one has been added to the property, else print photo 3. Change the number 3 to a photo which has not been used within the template so the image is not duplicated.



Expand
titleOffer


DataMerge CodeExample Output
Offer Estimated Commission Amount<Formatter.FormatPrice(Offer.OfferPrice / 100 *
Property.Sales.Comm)>
£3,200.00
Offer Estimated Commission Amount In WordsFormatter.PriceWord(Offer.OfferPrice / 100 *
Property.Sales.Comm, false, true)
Fourteen Thousand, Eight Hundred and Eighty Pounds
Vendor Solicitor Staff Member Attention<Offer.VendorSolicitor.Attention>John Doe
Vendor Solicitor Staff Member Salutation<Offer.VendorSolicitor.MailingSaltn>Mr Doe
Vendor Solicitor Staff Member Phone<Offer.VendorSolicitor.GetStaffPhone
(Offer.Property.Sales.Vendor.SolAttn, "b")>
01234 567 890
Vendor Solicitor Staff Member Email<Offer.VendorSolicitor.GetStaffPhone
(Offer.Property.Sales.Vendor.SolAttn, "e")>
jdoe@
example.com
Buyer Solicitor Staff Member Attention<Offer.BuyerSolicitor.Attention>John Doe
Buyer Solicitor Staff Member Salutation<Offer.BuyerSolicitor.MailingSaltn>Mr Doe
Buyer Solicitor Staff Member Phone<Offer.BuyerSolicitor.GetStaffPhone
(Offer.SolAttn, "b")>
01234 567 890
Buyer Solicitor Staff Member Email<Offer.BuyerSolicitor.GetStaffPhone
(Offer.SolAttn, "e")>
jdoe@
example.com
Current Offer Name (Applicant)<Property.CurrentOffer.AllNames>Joe Bloggs
Exchange date without ordinal number (i.e. th/nd/rd/st)<Property.Sales.ExchDate.ToString
("dd MMMM yyyy")>
20 April 2018

Buyer/sales details

DataMerge CodeExample Output
Exchange Commission VAT<Formatter.FormatPrice(((Convert.ToDecimal
(Property.Sales.ExchComm) * LoggedNegotiator.Config.Vat) /100), 2)>
£200.00
Exchange Commission Percentage<Math.Round(100.00 * (Property.Sales.ExchComm / Property.Sales.ExchPrice), 3).ToString("#.###") + "%">1.5%

Primary contact (vendor/landlord)

DataMerge CodeExample Output
Company Staff Member Attention<Property.PrimaryContactAttnName>John Doe
Landlord specific details

See Landlord section on this page


Vendor Company Staff Member Attention Contact<Property.PrimaryContact.AsCompany().
GetStaffPhone(Property.PrimaryContact.AsCompany().CurrentAttn, "e")>
John Doe



Expand
titleSystem Configuration


DataMerge CodeExample Output
Company Code <LoggedNegotiator.Config.CompanyCode> RPT 
 VAT Number <LoggedNegotiator.Config.VatNumber> 999 9999 73
 Enable Australia Features <LoggedNegotiator.Config.Australia> TRUE / FALSE



Expand
titleTenancy


DataMerge CodeExample Output
Total Rent Amount<Formatter.FormatPrice(Tenancy.GetTotalRent
(Tenancy.FrDate, Tenancy.ToDate), 2)>
£9,785.00
Annual Rent<Formatter.FormatPrice(Tenancy.ARent, 2)>£57,204.05
Annual rent in words<Formatter.PriceWord(Convert.ToInt32(Math.Floor
(Tenancy.ARent))) + " pounds" + (Tenancy.ARent %
1 != 0 ? " and " + Formatter.PriceWord(Convert.ToInt32
((Tenancy.ARent - Math.Floor(Tenancy.ARent))*100)) + "
pence" : "")>
fifty-seven thousand, two hundred and four pounds and five pence
Monthly rent in words<Formatter.PriceWord(Tenancy.CurrentDetails.MRent,
false, false)>
six thousand, nine hundred and eleven pounds and sixty-seven pence
Arrears Amount<Formatter.FormatPrice(Tenancy.GetRentArrears(), 2)>£719.67
All Tenant's Email Addresses<String.Join("", Tenancy.GetTenantPhoneDetails("e", true))>tenant1@
reapit.com
; tenant2@
reapit.com
; tenant3@
reapit.com
;
Number of tenants<Tenancy.Tenants.Count>5
Tenancy Length in years, months and days
<script:
int years = 0, months = 0, days = 0;
while (Tenancy.FrDate.AddMonths(months + 1) 
<= Tenancy.ToDate.AddDays(1))
{
    months++;
}

years = months / 12;
months = months % 12;
days = (Tenancy.ToDate.AddDays(1) - 
Tenancy.FrDate.AddYears(years).AddMonths
(months)).Days;

return ((years != 0 ? years + " year" + 
(years == 1 ? "" : "s") + ", " : "") +
    (months != 0 ? months + " month" + 
(months == 1 ? "" : "s") + ", " : "") +
    (days != 0 ? days + " day" + (days == 
1 ? "" : "s") : "")).Trim(", ".ToCharArray());
>
1 year, 2 months
, 5 days
Tenancy Finished Reason

<Tenancy.FinishReasonName>Conditions of contract not met
Multiple Tenant Names and contact details (removes carriage returns when N/A)<script:

string ret = ""; foreach (Contact con in Tenancy.Tenants) {

               ret += "Name: ";
               ret += con.Name;
               ret += "\t";
               ret += "Mobile: ";
               ret += con.GetPhone("m");
               ret += "\t";
               ret += "Email: ";
               ret += con.GetPhone("e");
               ret += "\r\n";

} return ret.Trim();>

Name: Mr Tenant
Mobile: 0777888444
Email: support@
reapit.com
Last Inspection<Tenancy.LastInsp>
Next Inspection Due By<Tenancy.NextInspDueBy.ToShortDateString()>01/01/2019

Financial & extensions

DataMerge CodeExample Output
Deposit Held By<Formatter.CodesToNames(Tenancy.DpstHeld, UserEnvironment.dpstHeldList)>Us - Stakeholder
DepositTenancy.DpstType == "GU" ? "Guarantee" : Tenancy.DpstType == "FS" ? Tenancy.DpstSumFormatted : String.Format("{0} {1} rent", Tenancy.DpstTimes, Tenancy.DpstType == "WE" ? "Weeks" : "Months")2 Weeks rent
Deposit plus rentFormatter.FormatPrice(Tenancy.CurrentDetails.RentUIC + Tenancy.DpstSumC, 2)
Extension total months<Math.Round((Tenancy.LastExtension.ToDate - Tenancy.LastExtension.FrDate).TotalDays / 365.25 * 12)>13
Total Commission<Formatter.FormatPrice(Convert.ToDecimal(Tenancy.Comm) / 100.0 * (Tenancy.GetTotalRent(Tenancy.FrDate, Tenancy.ToDate)), 2)>£6000.00
Total Commission VAT<Formatter.FormatPrice(LoggedNegotiator.Config.Vat /100.0 * (Convert.ToDecimal(Tenancy.Comm) / 100 * (Tenancy.GetTotalRent(Tenancy.FrDate, Tenancy.ToDate))), 2)>£1200.00
Total Commission inc. VAT<Formatter.FormatPrice((Convert.ToDecimal(Tenancy.Comm) / 100.0 * (Tenancy.GetTotalRent(Tenancy.FrDate, Tenancy.ToDate))) + (LoggedNegotiator.Config.Vat /100.0 * (Convert.ToDecimal(Tenancy.Comm) / 100 * (Tenancy.GetTotalRent(Tenancy.FrDate, Tenancy.ToDate)))), 2)>£7200.00
Letting fee frequency<Tenancy.CommCollName>Monthly
Management fee frequency<Tenancy.CommManCollName>Monthly

Agreements

DataMerge Code
Renewal Option<Tenancy.GetRenewMergeText()>
Break Clauses<Tenancy.GetBreakMergeText()>
Break Clause (Specific Clause)<script:
string ret = "";
foreach (TenCheck chk in Tenancy.BreakClauses)
{
if (chk.Source.BreakDesc.Contains("Rent Clause"))
{
ret += chk.MergeText.GetFullText(chk, chk.Tenancy) + "\r\n\r\n";
}
}
return ret.Trim();>
Allowed / Disallowed<Tenancy.GetAllowMergeText()>
Responsibilities<Tenancy.GetRespMergeText()>

Renewals

DataMerge CodeExample Output
Renewal length in months<Math.Round(Math.Floor((Renewal.toDate - Renewal.frDate).TotalDays) / 365.25 * 12.0)>14
Landlord's Break Clauses<script:
string ret = "";
foreach (TenCheck chk in Renewal.TenancyTerms.BreakClauses)
{
if (chk.Status== "L")
{
ret += chk.Source.BreakDesc + "\r\n" + chk.MergeText.GetFullText(chk, Renewal.Tenancy, rptObj) + "\r\n\r\n";
}
}
return ret.Trim();>

Tenant's Break Clauses<script:
string ret = "";
foreach (TenCheck chk in Renewal.TenancyTerms.BreakClauses)
{
if (chk.Status== "T")
{
ret += chk.Source.BreakDesc + "\r\n" + chk.MergeText.GetFullText(chk, Renewal.Tenancy, rptObj) + "\r\n\r\n";
}
}
return ret.Trim();>



Filter by label (Content by label)
showLabelsfalse
max5
spacescom.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@a45
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ( "templates" , "letters" ) and type = "page" and space = "RW"
labelslte merge codes template

Page Properties
hiddentrue


Related issues