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.- 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.
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.
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.
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.
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.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
Properties
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: IncrementalListings
Listings
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 tableProperty Catalogs
Property Catalogs
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 tableProperty Type Purposes
Property Type Purposes
Combinations of property type and purpose the Kenlo CRM accepts.Table:
property_type_purposes · Primary key: type_id, purpose_id · Sync: Full tableCustomers
Customers
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 tableAgents
Agents
Brokers and users of the agency, active and inactive. Requires the agency’s lead-reading consent.Table:
agents · Primary key: user_id · Sync: Full tableLeads
Leads
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: IncrementalLead Proposals
Lead Proposals
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: IncrementalLead History
Lead History
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: IncrementalDevelopments
Developments
Real estate developments (empreendimentos). Extracted in full on every sync.Table:
developments · Primary key: id · Sync: Full tableDevelopment Towers
Development Towers
Towers of each development.Table:
development_towers · Primary key: id · Sync: Full tableDevelopment Units
Development Units
Units of each tower.Table:
development_units · Primary key: development_id, tower_id, id · Sync: Full tableDevelopment Details
Development Details
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 tableDevelopment Combos
Development Combos
Combos (predefined sets of units) of each development.Table:
development_combos · Primary key: development_id, id, combo_item_id · Sync: Full tableDevelopment Sales Systems
Development Sales Systems
Sales systems available for developments.Table:
development_sales_systems · Primary key: id · Sync: Full tableDevelopment Unit Types
Development Unit Types
Unit types available for development units.Table:
development_unit_types · Primary key: id · Sync: Full table