Product How it works Channel, sheet, the record's run Architecture Espo on one side, the API on the other The model It proposes the mapping. It does not save. The run Cadence, and this morning's number Rules Owner, key, reject Sheets The ones Espo already has The field Who wins if the cell is empty The record How it enters and how it leaves What can go wrong Preview, read mode, the switch
Channels Channels File, table, call, outbound Recipes A mapping to review The trial The repository, an empty Espo
Nesso Why Nesso Not SQL, not a second CRM Who it is for Who has to trust the run Decisions The ones the code keeps The project The public repository
FAQ The trial
Italiano English

How it works

Two objects. One run. No query on the tables.

The connection is the channel. The integration is the rule: which sheet, which column is the identity, which field lands where, how often.

Espo on one side

A file is not an opinion.
The product, in one sentence

Why the run is short

The person who configures does not write a stored procedure and does not open the CRM tables. They choose the channel, the sheet, and the mapping. From there the same engine moves records, whatever the sheet is.

A site webhook can feed Leads and, with a second integration, Contacts. An integration has one connection. If the connection is HTTP, the integration leaves Espo. In the other cases it enters.

Inbound

The external system delivers a row: a call, a SELECT, a file. The key is the integration id plus the external value. On standard sheets the field is cExternalKey. On sheets created by Nesso it is externalKey.

If the row hash is already the one stored, Espo is not called: the row is unchanged. If the key already exists, it is an update. If it does not, it is a create. An identical second send does not duplicate.

Outbound

The cursor remembers the last modifiedAt and the Espo id. The run reads pages of 50 and sends only the mapped fields. The HTTP cursor advances only after the POSTs succeed. If the external key is missing, the pull stops: later records do not leave.

They are two different memories. The hash is the inbound memory. The cursor is the outbound memory. A second run, if nobody in Espo touched those records, exports zero.

The passage

Espo on one side. The external system on the other.

Nesso stands in the middle. It reads the channel, applies the mapping, and writes through Espo’s API. It does not open the CRM tables.

01

The external system

Not us

A file, a table, a call. That ERP’s name is not in the code. Nesso is not that system.

02

Nesso

This is us

Channel, sheet, fields. If the write switch is off, it does not write. If the field belongs to Espo, it does not clear it.

03

Espo

The sheet

The record, if it is born, is born there. CRM mail stays in Espo. The Advanced Pack is not rewritten.

Nesso always has Espo on one side. It is not a bridge between any two systems.

The product boundary