AI in Tesoro: What It Does and Doesn't Do
Tesoro CRM has a built-in AI assistant for property descriptions: you activate it, you review the result. In addition, a second AI system is being developed: the Mailparser for automatic lead processing from portal emails.
When is this relevant?
Section titled “When is this relevant?”- You publish properties in multiple languages and currently do this manually
- You import listings from other offices with their branding included
- You want to know which AI features work today and which are coming
- You build your own prompt templates for your target audience (luxury buyers, retired Brits, …)
What the in-CRM AI can do today
Section titled “What the in-CRM AI can do today”- Translate: description in 5 languages simultaneously in ~30 seconds, instead of manually or via external translation agencies
- Clean up (Unbrand): filter out branding from the previous agent in imported texts, property details remain intact
Two systems that must be kept separate
Section titled “Two systems that must be kept separate”The most important difference: you activate the in-CRM AI yourself; the Mailparser is intended to run automatically (not yet production-ready). They use different infrastructure, different providers, and can be enabled or disabled independently.
What it does: writes, translates, and cleans up property descriptions.
How it is started: an agent clicks an AI button in the property edit screen or selects multiple properties for a batch update.
Where it runs: within the Tesoro CRM application itself.
Requires: AI toggle on in Settings → My Company → AI Settings. If the toggle is off, agents see the message “Your company has turned off the AI functionality.”
AI provider: configurable at system level, OpenAI, DeepSeek or OpenRouter. Which one is active is shown in AI Settings (read-only for customers).
Typical scenarios:
- Generate description in 5 languages at once
- Build title + body from individual property features
- Remove competitor’s name from an imported listing text
Status: not yet production-ready. The description below applies to the future system once it is rolled out.
What it will do: extract lead data from portal emails and automatically create a contact record from them.
How it is started: automatically, once an email arrives at the configured address. No action from an agent required.
Where it runs: on Cloudflare Workers: separate infrastructure, not within the CRM app.
AI provider: DeepSeek.
Portals for which code exists: Idealista and Kyero (first phase). Other portals will be added later.
What is extracted: name, email address, phone number, property the lead is interested in, and the text of the message. Automatic language detection for common European languages.
Two practical scenarios (in-CRM AI)
Section titled “Two practical scenarios (in-CRM AI)”Situation: you publish a new villa on the market. Target audience: NL, EN, DE, FR, ES buyers.
You write the Dutch description yourself, that is the lead. Click AI Translate → check the 4 target languages → wait ~30 seconds → view the results in side-by-side tabs → correct one detail if necessary → click Insert All.
What you gain: what previously cost a half day or an external translator, you now do between two client conversations.
Situation: you import 40 properties from another office. Their descriptions contain the name, phone number, and slogan of that agent.
Open Properties → select all 40 → Batch Edit → Unbrand. The AI removes all branding and keeps the property details intact.
What you gain: rewriting 40 yourself takes an entire afternoon, Unbrand does it in a few minutes.
How configuration works
Section titled “How configuration works”The AI toggle (company-wide on/off)
Section titled “The AI toggle (company-wide on/off)”In Settings → My Company → AI Settings there is a single toggle that determines whether agents in your company can use the in-CRM AI. An administrator turns it on. This makes AI Translate, AI Rewrite, and Unbrand usable.
The Mailparser runs independently of this toggle.
AI provider and model (system-level, read-only)
Section titled “AI provider and model (system-level, read-only)”Below the toggle, you see which AI provider and model are currently active for two functions:
| Function | What it controls |
|---|---|
| Translation | Which AI provider generates and translates descriptions |
| Unbranding | Which AI provider removes competitor branding |
This setting is at system level, an individual company cannot switch providers. The dropdowns are read-only for customers. Supported: OpenAI, DeepSeek, OpenRouter.
Prompt templates: what the AI writes
Section titled “Prompt templates: what the AI writes”In Settings → AI Prompt you manage reusable instructions for the AI. Each template has:
- A title (so agents recognize it)
- A prompt (up to 8,000 characters, the actual instruction to the AI)
- A group (organization of templates)
- A type: Translation or Unbrand
- Optionally additional context enabled: then the AI receives property data such as property type, bedrooms, price, view, and features for more accurate output
Templates support placeholders like {{ property.title }}, {{ property.description }}, {{ ai.source_language }}, and {{ ai.target_language }}: these are automatically filled in when used.
Usage is logged
Section titled “Usage is logged”Each AI request is automatically logged:
- Which user / which company made the request
- Which function (Translation or Unbrand)
- AI provider and model
- Number of tokens consumed
- Any errors
No configuration needed on your part. Whether usage is billable or included depends on your contract.
Common mistakes
Section titled “Common mistakes”AI Translate doesn’t work: error message “AI functionality turned off”
Section titled “AI Translate doesn’t work: error message “AI functionality turned off””The AI toggle in Settings → My Company → AI Settings is off. An administrator turns it on.
Mailparser doesn’t create a contact record
Section titled “Mailparser doesn’t create a contact record”The Mailparser is currently not yet production-ready: lead processing via portal emails will be in a later release. Questions about the status? Contact your Tesoro contact person.
Translations sound stilted or off-brand
Section titled “Translations sound stilted or off-brand”The default prompt template is generic. Create your own template in Settings → AI Prompt with the desired tone of voice. Enable additional context for property-specific details.
Which provider am I using now?
Section titled “Which provider am I using now?”In Settings → My Company → AI Settings, the Translation and Unbranding providers are visible (read-only). Changing them is not possible from the company.
Frequently asked questions
Section titled “Frequently asked questions”Does AI usage cost money?
Section titled “Does AI usage cost money?”Usage is logged per request (tokens, provider, user). Whether it is included in your subscription or billed separately depends on your contract.
Which languages does the Mailparser support?
Section titled “Which languages does the Mailparser support?”At the planned release: automatic detection of common European languages (Spanish, French, German, Italian, Portuguese, Dutch, Catalan). The exact set will be finalized at rollout.
Can I choose the AI provider myself?
Section titled “Can I choose the AI provider myself?”No. Provider and model are set at system level. The AI Settings page shows which are active, dropdowns are read-only.
Are my descriptions used by the AI to ‘learn’?
Section titled “Are my descriptions used by the AI to ‘learn’?”Tesoro logs the request (user, function, tokens). The content itself is not stored for model training. Specific terms depend on the chosen AI provider.
What if the AI gives a wrong answer?
Section titled “What if the AI gives a wrong answer?”All AI output is editable before you save. You always have final control, nothing goes live without your review and Insert.
The two systems compared (reference)
Section titled “The two systems compared (reference)”| In-CRM AI | Mailparser AI (in development) | |
|---|---|---|
| Status | Production-ready | Not yet rolled out, code for Idealista and Kyero exists |
| What it does | Writes, translates, and cleans up descriptions | Extracts lead data from portal emails |
| Where it runs | Within the Tesoro CRM application | Cloudflare Workers (separate infra) |
| AI provider | OpenAI, DeepSeek or OpenRouter (system setting) | DeepSeek (fixed) |
| Requires AI toggle | Yes | No, intended to run independently |
| Who activates it | Agents, manually or via batch | Automatically on incoming email (future) |
| Supported languages | All CRM languages | Planned set: NL, ES, FR, DE, IT, PT, CA |
Summary
Section titled “Summary”- Two AI systems: in-CRM AI for descriptions (works), Mailparser for leads (in development).
- In-CRM AI requires the toggle in Settings → My Company → AI Settings.
- Prompt templates (Settings → AI Prompt) determine what the AI writes. Custom templates for your target audience.
- You have final control: all AI output is editable before you save.