Skip to main content
Kenlo Imob is a Brazilian CRM for real estate agencies. The connector uses the Kenlo Open API v2 to extract your properties and the listings published on the channels, your customers, brokers and users, your leads with their proposals and history, your developments with their towers, units, attributes and combos, and the reference lists behind the property fields. With it you can analyze your portfolio, your funnel and your brokers’ performance in your Lakehouse.

Configuring Kenlo as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Kenlo option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

Kenlo gives API access through the Kenlo Marketplace, and only to agencies on the K2 plan. When the integration is registered in the Marketplace, Kenlo issues two values that are used together:
  • the API key;
  • the user info, a long Base64 text that identifies your agency.
In the Marketplace, the agency also chooses which data the integration may read (consents). To extract leads, their proposals and history, and the list of brokers and users, the lead-reading consent (lead_get_status_consent) must be enabled. Prices, owner data and full addresses also depend on their own consents; without them those fields come back empty.
The following configurations are available:
  • API Key: the API key issued by Kenlo. Required.
  • User Info: the user info issued together with the API key. Paste it exactly as you received it. Required.
  • Start Date: the earliest last-update date of the properties and leads read on the first sync. Later syncs continue from where the previous one stopped. Leave it empty to read the whole history. Listings, customers, developments and the reference lists are always extracted in full.
  • Requests Per Minute (advanced): how fast the connector may call Kenlo. The default is 60. The actual limit is set in your Kenlo contract; when Kenlo asks the connector to slow down, it waits and continues automatically.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Lead proposals and lead history take one request per lead each. On the first sync of an agency with many leads, they make the extraction noticeably longer; later syncs only visit the leads that changed.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: properties, leads, lead proposals and lead history are INCREMENTAL: each sync brings what changed since the previous one. The other streams are FULL_TABLE: each sync replaces the table with what Kenlo currently holds. Read more about Sync Types here.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Kenlo and their corresponding fields. API reference: Kenlo Open API v2.
Every table has a raw_payload column with the whole record exactly as Kenlo returned it, so information without a column of its own is still available. Lists and objects are stored as JSON text, and timestamps are converted to UTC. During Kenlo’s free period, Kenlo masks personal data (such as phone numbers and e-mails) and limits the number of records.
Properties as registered in the agency’s Kenlo CRM. Incremental: each sync reads the properties updated since the previous one (from one day before, as Kenlo filters by date).Table: properties · Primary key: id · Sync: Incremental
Listings published on the channels (portals and the agency website). A property can have zero or many listings. Extracted in full on every sync.Table: listings · Primary key: id · Sync: Full table
Reference lists of the property fields, one row per option. Join catalog = 'type' and value = properties.type_id to get the name of a property type; the same works for usage, purpose, status and the other lists.Table: property_catalogs · Primary key: catalog, value · Sync: Full table
Combinations of property type and purpose the Kenlo CRM accepts.Table: property_type_purposes · Primary key: type_id, purpose_id · Sync: Full table
People relevant to the agency: owners, clients, leads and brokers (see role). Extracted in full on every sync.Table: customers · Primary key: id · Sync: Full table
Brokers and users of the agency, active and inactive. Requires the agency’s lead-reading consent.Table: agents · Primary key: user_id · Sync: Full table
Leads (atendimentos) of the agency’s funnel. Incremental: each sync reads the leads updated since the previous one. Requires the agency’s lead-reading consent.Table: leads · Primary key: id · Sync: Incremental
Proposals of each lead, read again whenever the lead changes. Kenlo does not document the fields of this list, so the columns follow the proposal fields Kenlo accepts and everything else is in raw_payload.Table: lead_proposals · Primary key: lead_id, proposal_id · Sync: Incremental
History entries of each lead (stage changes, contacts, comments), read again whenever the lead changes. Kenlo does not document the fields of this list, so the columns follow the documented entry types and everything else is in raw_payload.Table: lead_history · Primary key: lead_id, history_id · Sync: Incremental
Real estate developments (empreendimentos). Extracted in full on every sync.Table: developments · Primary key: id · Sync: Full table
Towers of each development.Table: development_towers · Primary key: id · Sync: Full table
Units of each tower.Table: development_units · Primary key: development_id, tower_id, id · Sync: Full table
Technical attributes of each development (parking, leisure, security and so on). Each value is either a boolean or a number, depending on variable_type.Table: development_details · Primary key: development_id, detail_id · Sync: Full table
Combos (predefined sets of units) of each development.Table: development_combos · Primary key: development_id, id, combo_item_id · Sync: Full table
Sales systems available for developments.Table: development_sales_systems · Primary key: id · Sync: Full table
Unit types available for development units.Table: development_unit_types · Primary key: id · Sync: Full table