The CRM becomes the back office
Self-hosted Twenty is the single source for properties, contacts and deals. The billing history was moved into it, and a small custom app lets the team sort photos and change a listing’s status there.
Real estate · Portal, CRM and automations
Palmora Property lists properties for sale and rent in Phuket. We built the website, the CRM that serves as its back office and the automations that connect them: a listing approved in the CRM is live in six languages the next morning, or straight away at the push of a button.

Palmora Property
6
languages served
English, French, Thai, Russian, Chinese and German
865
listings online per language
Catalogue counted on 21 September 2026
3
alert channels for the team
Business, technical and contact requests
Operational figures taken from the project's own tools. We publish no sales or traffic figures without their owner's consent.
Listings lived in a spreadsheet and were copied to the website by hand, and every language added work. Callback requests only arrived by email: a lost email meant a lost client, and nobody knew.
The business needed one place to enter a property and follow a client, and a website that kept up on its own.
Self-hosted Twenty is the single source for properties, contacts and deals. The billing history was moved into it, and a small custom app lets the team sort photos and change a listing’s status there.
Every morning, new listings from a feed are imported with their photos and given an internal reference. Their description is written in the house format, then they wait for a human to approve them.
Every morning, a sync publishes the approved catalogue: optimised photos, translated text, withdrawn listings reported cleanly to search engines. A “Publish to the website” button in the CRM saves waiting for the next day.
Listings are translated by a model chosen for its cost, about six times cheaper than the standard model, and a cache avoids paying twice for the same translation.
Every form is saved to the database before any email is sent, then creates the contact and the deal in the CRM, and notifies the team in its channel.
A report every morning (new properties, approval queue, sync status, backup age), a restore test every month, an alert if a job has not checked in for 30 hours. When the sync fails, a coding agent prepares the fix.



January 2025
Multilingual Astro website, first optimisations
May 2026
Twenty CRM replaces the spreadsheet as the single source
July 2026
Site audits, enquiries saved to the database, German across the whole site, sync moved to a dedicated server
August 2026
Translation model six times cheaper
E-commerce · Takeover and turnaround
Read the case study
App · Web, iOS and Android
Read the case study
Media · Automated content production
Read the case study
Migration · SEO audit, topic clusters and Astro
Read the case study
We start by checking together that it is the right workstream, and what it would change for you.