Skip to content

Connectors

A connector is an application from outside — Airtable, a CRM, a messaging service, your own ERP — that a role can use without leaving Organtia. The view is called Connectors under Settings, Applications tab (the page address is still the one for “connected applications”).

Each connector is a declarative record: it says what connection data it asks for, how it authenticates and which actions it offers. There is no code per application: adding one means adding a file to the catalogue. The engine makes HTTP requests, stores keys encrypted and logs every call.

Four rules worth keeping in mind:

  1. The keys belong to this installation. They live encrypted in its database and never leave through the screen or the API.
  2. No permission, no connection: a role only uses what it has been granted. You, as the owner, see everything.
  3. Every call is audited: who, which action, which response code and how long it took.
  4. Internal network addresses are closed by default. They are opened connection by connection, with “Allow local network”.
Element What it does
Title “Applications” with a counter: how many records are in the catalogue.
Search box “Search application…”. Searches the name, the identifier and the description.

Below there is a row of category buttons. The first is “All (N)”; then one per category, with its count. Tapping one leaves the gallery with only that category. The active category is highlighted.

Catalogue categories in this version:

Category Applications
Messaging 62
Development 46
Marketing 28
Others 26
Sales 25
Productivity 23
Documents 23
Data 16
Infrastructure 8
Finance 8
Automation 2
Communication 1
Security 1
CRM 1
AI 1
Artificial intelligence 1
Systems 1
Projects 1

In total, 274 records. The numbers on the buttons are computed on the fly: if the catalogue changes, they change with it.

Each application is a card with its icon and its name. Hovering over it shows its description. If the application is one of those requiring OAuth2 and that flow is not available yet, the card carries the “OAuth2” badge.

Tapping a card opens the form to connect that application. Nothing is connected just by tapping it.

If the search finds nothing: “No application matches “text”. Add it with a file in app/conectores/“. It is literal: the catalogue is JSON files in that folder of the installation.

Below the gallery is the list of connections set up in this installation. If there are none: “None yet. Tap an icon above and it will ask only for what that application needs. You can test it before giving it to anyone”.

Each row shows:

Part What it is
Icon and name The name you gave this connection, with a tag for the connector it comes from.
Authentication The type in plain language: “No authentication”, “Token (Bearer)”, “Custom header”, “Username and password”, “Parameter in the URL”, “Token inside the URL”, “Keys in the URL” or “OAuth2 (pending)”.
Key “key saved” or “no key”. The key is never shown.
Local network “local network allowed”, only if you opened it.
Permissions The roles that can use it, separated by commas, or “nobody else uses it”.

And these buttons:

Button When it appears or is active What it does
Connect Only on OAuth2 connections that are not pending and do not have a token yet. Opens the provider’s authorisation screen in another tab. When you authorise and come back, the connection saves the token itself.
Test Always. Opens the real test dialogue for that connection.
Permissions Always. Opens the “Who can use it” dialogue.
Edit Always. Opens the form with what is saved. Key fields come up empty so you do not change them by accident.
Bin Always. Deletes the connection, without asking for confirmation.

It opens when you tap a card in the gallery (“Connect name”) or with “Edit” (“Edit name”). What it asks for is dictated by the connector’s record, not by the screen: that is why some applications have two fields and others six.

Element What it is
OAuth2 pending notice If the application requires a flow that does not exist yet, it explains that it will connect when it does. The Save button stays disabled.
Unsupported notice If the connector does not speak HTTP, it says why and the Save button stays disabled.
Name of this connection How you will recognise it in the list. Required; without it you cannot save.
Connection data The application’s own fields (for example a base ID and a table name). Each one carries its label, an asterisk if it is required and an example as a hint.
Authentication Dropdown, only if the connector accepts more than one type. Changing it asks for the new type’s fields.
Keys One or more password fields, depending on the type. The label comes from the record itself when it has one (“Personal token”, “Username”, “Password”…). If the type asks for none, it says so: “there are no keys to save”.
“How to get it” If the record has it, it explains where the key or token is generated.
Redirect URL Only on OAuth2: the URL to copy into the remote application. If the connection is already saved, “Connect and authorise” appears; if not, it warns that you have to save first.
“Allow local network” Checkbox off by default. Only for applications on your own network (192.168.x, 10.x, localhost).

When saving, empty data fields are not sent, and neither are empty keys: when editing, leaving a key blank keeps the previous one.

Authentication types the engine understands:

Type What it asks for
No authentication Nothing.
Token (Bearer) A token.
Custom header The header name and its value.
Username and password Username and password.
Parameter in the URL The parameter name and its value.
Token inside the URL A token that travels in the address itself.
Keys in the URL Several keys as parameters.
OAuth2 (pending) Authorisation on the provider’s website; not yet available across the whole gallery.

If a record carries a type that is not in this list, the screen shows its technical name (for example aws_sigv4) instead of a translated label.

If the application’s URL points to a private or local address, or to a loopback address, the server rejects the call unless you have ticked “Allow local network”. The error says so plainly: “the URL points to a private or local address. If it is your internal server, enable “allow local network” on that connection”.

Only http:// and https:// are accepted.

The catalogue shows some applications the engine cannot use, so that you know they exist and why they are not there:

Application Reason
MQTT It does not speak HTTP: it is publish and subscribe over TCP with a permanent connection. It would need a bridge.
Redis It uses its own protocol over TCP, not HTTP.
SSH It is not a web API: it cannot be called with an https address.

And two that require OAuth2 and do not yet have the full flow: Microsoft Dataverse and ServiceNow. In all five, the Save button is disabled and the record explains why.

This is where a connection is given to a role, action by action.

Element What it is
Permissions list Each role that already uses it, with the actions granted and a bin to take the permission away.
No-permissions notice If nobody uses it: “Nobody uses it yet. Only you, as the owner”.
Role Dropdown with “Adrián (CEO)” and all active roles.
Actions One checkbox per action that connector offers.
“Grant” Disabled if no role is chosen or no action is ticked. When you press it, it says “Permission granted to code” and closes the dialogue.

Removing a permission is done with the bin on its row, without confirmation. The notice is “Permission withdrawn from code”.

There is a second route, quicker and blunter: in the role’s profile, “Applications” tab, tapping a connection’s icon gives it all its actions; tapping again takes them away. To fine-tune which action yes and which action no, use this Connectors dialogue.

The test is real: it goes out to the external application and it is logged. The subtitle says so: “the call is real and it is logged”.

Element What it is
Action Dropdown with the actions the connector offers. Changing it reloads its parameters with the default values.
Description The explanation of the chosen action.
Parameters One field per parameter, with its label and an asterisk if it is required. If the parameter accepts a list of values, it is a dropdown; if it expects an object or a list, it is a text area for JSON; the rest are normal fields.
“Run” Launches the call. It is disabled while it is in progress.
Result Header “Response · code · N ms” or “Error · N ms”, and below it the response body in a scrollable block.

Empty parameters that have a default value are sent with that value. Text that starts with { or [ is sent as JSON; text with a numeric default value is sent as a number; the rest as text.

Testing a connection does not grant permissions or change anything about the connection: it only checks that it answers.