Guide · Real estate · Software
An AI agent is only as useful as what it can read and write in the agency's software. On 29 October 2026 we read the public documentation of seven CRMs used by French estate agencies: who publishes an API, who sends webhooks, and where to keep the proof of consent French law has required since 11 August 2026.
What we measured
The six names covered here belong to four publishers, and only one of them publishes API documentation: Apimo.
In short
4 publishers
behind the six names Apimo, Hektor, AC3, Netty, Immo-facile and La Boîte Immo
Websites and legal notices of Apimo, La Boîte Immo, Orisha Real Estate and Modelo, 29 October 2026
51 operations
in the public Apimo API: 29 reads, 12 creates, 7 updates, 3 deletes
Apiwork OpenAPI spec (commit 3a8911f of 29 October 2026)
0 webhooks
documented by Apimo: the agent polls the API with a timestamp parameter
Apiwork OpenAPI spec (commit 3a8911f of 29 October 2026)
3 years
retention of the proof of consent to telephone canvassing
French decree n° 2026-662, article R. 223-2, Légifrance
This guide covers the connection between an agent and the agency software. The tasks an agent takes on once connected are covered in five AI automations that work in estate agencies, and connecting a CRM straight to Claude in our guide Claude and your CRM.
The market

This matters if you want to connect an agent. Comparing Hektor with La Boîte Immo, or AC3 with Immofacile, means comparing the same publisher twice, and so the same data access policy. Here is what each official website said on 29 October 2026.
| Name cited | What it is | Publisher | What we checked |
|---|---|---|---|
| Apimo | Transaction software | Apiwork SAS (Cannes trade register) | Public "Webservice & API" page, OpenAPI spec and legal notice |
| Hektor | Transaction software | La Boîte Immo | "From 79 euros excl. VAT per month" for Hektor alone on 29 October 2026, no API documentation |
| La Boîte Immo | Publisher of Hektor | La Boîte Immo | Same publisher as Hektor |
| AC3 | Group formed in 2016 by Poliris and Immofacile | Orisha Real Estate | "Notre histoire" page of Orisha Real Estate |
| Immo-facile | Immofacile transaction software | Orisha Real Estate | immo-facile.com redirects to realestate.orisha.com, no published price, API not documented |
| Netty | Former name of Modelo Office | Septeo Real Estate Solutions | netty.fr redirects (301) to modelo.fr, prices via a form, API not documented |
Orisha Real Estate traces AC3 on its history page: Poliris and Immofacile left the SeLoger group to join Gercop, "donnant naissance au Groupe AC3". For Netty the evidence is technical: netty.fr answers with a permanent redirect to modelo.fr, and the Modelo Office product page still uses images named "netty". The modelo.fr site is published by Septeo Real Estate Solutions (modelo.fr legal notice, read on 29 October 2026).
The original data

| CRM | Public API | Webhooks | Authentication | Documentation |
|---|---|---|---|---|
| Apimo | Yes, OpenAPI 3.0.3, partner account | Not documented; sync through the timestamp parameter | HTTP Basic, provider ID and token, rights per scope | apimo.com/api/webservice, github.com/Apiwork/apimo-openapi |
| Hektor (La Boîte Immo) | Not documented | Not documented | Not documented; partner keys (MyNotary) | No public page |
| Immofacile (Orisha Real Estate) | Not documented | Not documented | Not documented | Partner programme on request |
| Modelo Office (Septeo, formerly Netty) | Not documented | Not documented | Not documented | No public page |
| SweepBright | Yes, "Website API" for the agency website | Yes, per company, each time a listing is published | OAuth 2.0, token valid 7 days | website.sweepbright.com/docs |
| Twenty | Yes, REST and GraphQL generated from the data model | Yes, create, update, delete, HMAC SHA256 signature | API key (Bearer), OAuth | docs.twenty.com |
| HubSpot | Yes, CRM API | Yes, app subscriptions, v3 HMAC SHA-256 signature | OAuth 2.0 | developers.hubspot.com |
| CRM | What an agent can read | What an agent can write |
|---|---|---|
| Apimo | Agencies, sectors, users, listings and their history, contacts, leads, buyer searches, actions, contracts, residences, matches | Listings, photos, documents, comments, contacts, leads, buyer searches, actions (call, viewing, email), contracts |
| Hektor | Not documented | Not documented |
| Immofacile | Not documented | Not documented |
| Modelo Office | Not documented | Not documented |
| SweepBright | Listing data, after the publication webhook | General or listing-specific leads, owner requests |
| Twenty | Every object, custom objects included | Every object, in batches of up to 60 records |
| HubSpot | Contacts, companies, deals, activities; no standard Listing object | Contacts, deals, meetings, notes, tasks |
The Apimo case

The documentation is the publisher's own. On apimo.com/api, the "Api3 Documentation" button leads to apimo.com/api/webservice, a page that loads the spec from the Apiwork/apimo-openapi GitHub repository; Apiwork SAS, registered in Cannes, publishes Apimo according to the apimo.com legal notice read on 29 October 2026. Apiwork rewrote the spec on the very day of our check.
We counted it on commit 3a8911f of 29 October 2026: 51 operations, with 29 reads, 12 creates, 7 updates and 3 deletes. The three deletes cover a listing's photos, media and documents. An agent therefore cannot delete a contact or a lead through the API, which limits the damage of a mistake. Authentication is HTTP Basic with the provider ID and a token, and each route requires a right (scope) enabled on the account.
| What the agent needs | Apimo operation | Useful fields |
|---|---|---|
| Read listings | GET /agencies/{id}/properties | Price, area, status, mandate dates |
| Find a contact | GET /agencies/{id}/contacts | Last incoming and outgoing action |
| Read consent per channel | GET /agencies/{id}/contacts/{id} | Phone, email, SMS, messaging: consent or refusal, date |
| Create a contact | POST /agencies/{id}/contacts | Contact details, postal mail, newsletter and magazine subscriptions |
| Create a lead | POST /agencies/{id}/leads | Source, stage, related listing |
| Save a buyer search | POST /agencies/{id}/requests | Criteria, automatic matching |
| Log a call or an email | POST /agencies/{id}/actions | Type, user, date, content |
| Book a viewing | POST /agencies/{id}/actions | date, time_start, time_end, contact, properties |
| See what changed | timestamp parameter on 15 lists | Incremental sync, no notification |
Three practical limits. First, with no documented webhook, the agent learns about a change (a listing sold, a new lead entered by a negotiator) only on its next pass, and every call counts against a default quota of 1,000 requests a day, lead creation excepted. Second, contact creation does not check for duplicates: the spec states that each call creates a new contact, so the agent searches before it creates. Third, the API has no message-sending operation: email or SMS follow-ups go through a third-party tool, or through Automator, the built-in automation Apimo presented on 12 December 2024 with email, SMS and push reminders.
Third-party tools already connect: on 10 September 2026 Apimo announced its Leedflow integration, an assistant that summarises calls. On 29 October 2026, apimo.com shows 89 euros a month for CRM AI and 139 euros a month for CRM AI+; the page says neither whether that is per user nor whether VAT is included, and the cost of a partner account is not published.
Re-read on 4 November 2026 at commit 34b6c88 of 30 October 2026, the spec still has 51 operations and no webhook. The blocks below turn it into a working plan for an agency that wants to connect an agent: access, quota, what the agent writes, what it cannot do, how follow-ups start, and who signs off.
The agent authenticates with the provider ID and token of a partner account, over HTTP Basic and HTTPS only. The spec sets three access rules. The account only sees agencies that have activated a connection with it. Every route needs a right (scope) enabled on the account, otherwise the API returns 403. An IP allow-list can be switched on for the account.
As of 4 November 2026, neither the Web service & API page nor Apimo's contact page explains how to obtain that account, how long it takes or what it costs. The request therefore goes to Apimo, from the provider building the agent. The agency then activates the connection on its side. A connection can cover one agency, a company, a network or a single agency sector.
| Step | Who does it | What it opens |
|---|---|---|
| Partner account request | The provider, with Apimo | A provider ID and a token, with access to no agency yet |
| Connection activated | The agency | The agent sees that agency, company or sector, and nothing else |
| Read rights | Enabled on the partner account | properties, contacts, requests, leads, actions, contracts |
| Write rights | Enabled on the partner account, requested one at a time after the agency agrees in writing | leads_write, contacts_write, requests_write, actions_write |
Every call uses one request from a daily quota, 1,000 by default, reset every night. Beyond that, the API returns 429. Two writes are not counted: sending a lead, and updating a listing's publication on a portal.
Lists are sorted by last update, oldest first. On each pass the agent sends back the timestamp it received last time and gets only what changed. A list that spans several pages costs one request per page. Polling three lists every five minutes already uses 864 requests a day (3 × 288), which leaves 136 for reading a record in detail or writing. So the pace is set list by list: leads often, listings and contracts a few times a day.
Five writes matter to an agent that answers and qualifies enquiries. The two that need the most care are the lead, which updates by its reference, and the contact, which gets duplicated if the agent does not search first. The agency side of this flow is on our page about buyer qualification by an AI agent.
| What the agent writes | Operation | What to know |
|---|---|---|
| A lead | POST /agencies/{id}/leads | Unique reference: sending the same reference again updates the lead instead of creating a second one. Apimo emails the agency an alert for a new lead of certain types, unless no_alert is set. Not counted against the quota. |
| A lead update | PUT /agencies/{id}/leads/{id} | An update replaces the lead: fields left out are emptied. The agent sends the full record every time. |
| A contact | POST /agencies/{id}/contacts | No deduplication: every call creates a contact. The agent searches first. |
| A buyer search | POST /agencies/{id}/requests | Criteria, automatic matching with listings, subscription to listing alerts. |
| A call, an email, a viewing | POST /agencies/{id}/actions | Type, negotiator, date, time_start, time_end, contact, listings. After the viewing, the visitor’s opinion of each listing (a rating from 1 to 7 and a comment). |
One detail in the spec prevents a calendar mistake. Whenever the agent sends an action's type, updates included, the calendar display flag (calendar_is) goes back to its default, unless the agent sends it again in the same request. An edited viewing can drop out of the negotiator's calendar that way.
It cannot delete a contact, a lead or an action: the three documented deletes cover a listing's photos, media and documents. It sends no email or SMS, because there is no sending operation. Nothing alerts it to a change, because there is no webhook. It cannot read a negotiator's free slots: no route returns them, so the agent works them out from the actions it reads in each user's calendar.
Nor can it write proof of consent. Per-channel consent (phone, email, SMS, messaging) can be read on the contact record, but the contact write schema does not include it. The consent section below covers where to keep that proof.
Apimo never alerts the agent, so every follow-up starts with a read. On each pass the agent compares the dates the API exposes with today's date, and drafts a message when a threshold agreed with the agency is crossed. The full use case is on our page about follow-ups with buyers and sellers.
| Signal read in Apimo | Field | Follow-up drafted |
|---|---|---|
| Contact with no exchange past the agreed threshold | Contact’s last incoming and outgoing action | Message to the contact, on a channel where consent is on record |
| Buyer search gone quiet | last_action on the search | Newly matched listings, or a question about the project |
| Matched listing to offer | Matching stage (to offer, to view, viewed) | The listing sent to the buyer |
| Past viewing with no feedback | Viewing action and per-listing opinion | A feedback request after the viewing |
| Mandate nearing its end date | Mandate start and end dates | Alert to the negotiator, who decides whether to contact the seller |
| Sale milestone coming up | Offer, preliminary contract, condition precedent and scheduled deed dates | Reminder to the negotiator |
The sending itself goes through a third-party tool, for example an n8n workflow wired to the agency's mailbox or messaging, or through Automator, Apimo's own automation module. Apimo's announcement of 12 December 2024 says Automator 2 sends email, SMS and push reminders to the negotiator or the client, synced with Google or Microsoft Calendar, with fully custom scenarios announced for later. Once a message has gone out, the agent logs it as an action on the contact record, so the negotiator sees it in the history.
Before go-live, the agency puts three things in writing: which rights the account gets (read first, then write, one object at a time), which messages go out without review, and which negotiator receives what the agent does not handle. We recommend that a negotiator approves every follow-up for the first few weeks, then only those that mention a price, a commitment date or a mandate.
Anything touching negotiation, price or signature stays with an authorised person. Our guide to the Hoguet law and AI agents sets out, article by article, what an agent can say on its own.
The others
Hektor. On 29 October 2026, the product page shows "from 79 euros excl. VAT per month" for Hektor alone and more than 8,500 agencies equipped, with no API documentation. Key-based connections exist: MyNotary's page describes four steps, one of which is entering a MyNotary key into Hektor. The partner supplies the key and the software accepts it. Nothing shows that an agency can get the same access for its own agent.
Immofacile. The Orisha Real Estate page lists listing syndication, an electronic mandate register, automated buyer follow-ups and an in-house AI assistant called Scout. It describes the software as "compatible avec les autres logiciels immobiliers et solutions d’Orisha Real Estate" (compatible with other real estate software and Orisha Real Estate products) and says it connects to property management software. No published price, no API documentation. The partner page invites vendors to get in touch.
Modelo Office. On 29 October 2026, Modelo's website presents six integrated products and 19,000 client agencies. The pricing page holds only a form. It carries no API documentation.
What this means for an AI agent: on these three products it can work upstream (reply, qualify, prepare the record), but writing into the software depends on an agreement with the publisher. Before signing with a provider who promises "integration with your software", ask what access they have obtained, and in what form.
Generic CRMs
Twenty is an open-source CRM founded in Paris. Its documentation describes REST and GraphQL APIs generated from each workspace's data model: a "Listing" or "Viewing" object created by the agency gets its own endpoints. Authentication uses an API key sent as a Bearer token, and the webhooks page describes a call on every create, update or delete, signed with HMAC SHA256. The core is free to self-host. In the cloud, on 29 October 2026, the pricing page shows 9 dollars per user per month (Pro) and 39 dollars (Organization) billed yearly, with 50 and 100 API calls per minute.
HubSpot exposes its CRM objects through an API with OAuth 2.0. Its documentation shows how to create a meeting associated with a contact with POST /crm/v3/objects/meetings, and webhook requests carry a v3 signature computed with the app secret. HubSpot has no standard Listing object: listings have to be modelled separately. On 29 October 2026, the pricing page shows a free plan for up to two users and Starter from 7 dollars per seat per month.
The choice between the two comes down mostly to hosting. Twenty installs on a European server the agency controls; HubSpot is hosted by the vendor. What we do on Twenty is described on our page Twenty CRM installation and customisation.
The requirements
| Operation | Apimo | Twenty | HubSpot | SweepBright |
|---|---|---|---|---|
| Read listings | Yes, list and matches | Yes, custom object | Object to model | Yes, after webhook |
| Create the contact or lead | Yes, no deduplication | Yes | Yes | Yes, lead |
| Log the interaction | Yes, action | Yes, note or task | Yes, note | Not documented |
| Book the viewing | Yes, action with times | Yes, task or Viewing object | Yes, meeting | Not documented |
| Get notified of a change | Not documented, periodic polling | Yes, webhook | Yes, webhook | Yes, listing published |
| Send the follow-up | Not documented, third-party tool or Automator | Third-party tool | Third-party tool | Not documented |
Reading listings is what separates sector software from generic CRMs. In Apimo, the listing is the central object, with its mandate dates and its matches with buyer searches. In Twenty or HubSpot, the object has to be created and kept up to date, which means syncing with the software that syndicates the listings. That is the set-up described on our page on the intelligent CRM for real estate.
The diagram

Two design rules apply whatever the software. The agent starts read-only, then gets write access object by object. And every write leaves a trace the negotiator can read: a note saying what the agent did, at what time, from which message.
The full path of a request, from the portal email to the viewing slip, is set out in our guide on how an estate agency can automate viewing requests with an AI agent.
GDPR and the 2025 law
Article 13 of law n° 2025-594 of 30 June 2025 rewrote article L. 223-1 of the French Consumer Code: the professional bears the burden of proving that the consumer's consent was collected. The table below turns articles R. 223-1 and R. 223-2 of the decree into CRM fields. What the law changes for finding sellers is covered in our guide to France's cold-calling ban for estate agencies.
| What the decree requires | What the CRM must store |
|---|---|
| The text shown to the prospect | The exact wording, versioned |
| The date and time of consent | A timestamp per contact |
| The duration, one year at most, no tacit renewal | A computed expiry date |
| Withdrawal at any time, including orally | A withdrawal field the agent and the negotiator can fill in |
| Proof provided free of charge on request, for three years | An export or a page the person can read |
Here the Apimo spec shows a detail none of the comparisons we read mention. The contact record exposes, for reading, consent per channel (phone, email, SMS, messaging), each with a consent or refusal and a date. These fields are not in the contact write schema, and none keeps the wording shown or the duration. An agent connected to Apimo can therefore check phone consent before offering a callback, but it must write the proof elsewhere: a dedicated field if the publisher opens one, or a separate log linked to the contact ID. In Twenty, a "Consent" object with its date and text fields is created like any other custom object.
The agent itself must follow the rule: it only offers a phone callback to a prospect whose consent is recorded and valid, and it records the withdrawal when the prospect asks for it in the conversation. Why the contact base should remain the agency's property is the subject of our guide on why estate agencies must own their data.
Decision
| Your situation | What we recommend | Watch out for |
|---|---|---|
| Agency on Apimo | Agent connected to the Apimo API, connection activated by the agency | Webhooks not documented: set the polling frequency within the quota; store the proof of consent separately |
| Agency on Hektor, Immofacile or Modelo Office | Ask the publisher in writing: read access, contact writes, events, cost | Without an agreement, the agent works upstream and a person copies into the software |
| Agency on SweepBright | Website API for website leads, publication webhooks | API limited to the website: no documented interaction log |
| Independent agent or small firm with no sector software | Twenty or HubSpot as a prospecting CRM | No listing syndication or mandate register in these tools |
| Network or franchise | Require a documented API and webhooks before any agent project | Access rights are negotiated at network level |
Lumyniq installs Twenty: bear that link in mind when reading this grid.
In our view, switching software just to connect an agent is rarely a good reason. A migration affects listing syndication, mandate history and the habits of the whole team. A written access request to the publisher costs far less, and the answer already tells you how far an agent can go. For agencies that also manage rentals, property management software and its automation are compared in our guide to automating property management with AI.
Limits
Record quality. An agent reads what the negotiators entered. Sold listings still marked active, duplicate contacts or buyer searches without criteria produce confident wrong answers. Cleaning the base therefore comes before connecting.
The old file. Contacts collected before 11 August 2026 without compliant consent do not become callable because an agent reads them again. Consent has to be collected again in the form article R. 223-1 sets: a clear request, a positive act, a duration of one year at most.
The processor. The agent, its host and the language model provider process your clients' personal data. Each must appear in the record of processing activities, with a contract.
The date. This check is valid for 29 October 2026, and the Apimo spec changed that same day. A publisher that publishes nothing today may open an API tomorrow, and a public API may change its terms. Check the documentation on the day you start the project.
Support
On Twenty, we deliver installation in the cloud or on a European server, the business objects, workflows (follow-up after a viewing, end-of-mandate alert), data migration from another CRM and the connection to Claude. On existing software such as Apimo, we build a custom AI agent connected to its API, once the agency has activated the connection. For software with no documented API, we say so before quoting. The overview of AI projects in the sector is on our page AI for real estate.
FAQ
Related guides
What the agent does once connected to the CRM.
Which CRMs connect to Claude, and how.
The client file and its consents as an agency asset.
Property management software and what it opens to automation.
Links verified at publication. Regulatory texts change — always defer to the official source.
A question, a project, an idea? We respond within 24h. Free audit, no commitment.