Teach a field one more column name
const url = 'https://api.sloose.com/orgs/org_9f3c/config/fields/accounts/Account_Name/aliases?connector=con_8f2a';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"alias":"Cust No"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.sloose.com/orgs/org_9f3c/config/fields/accounts/Account_Name/aliases?connector=con_8f2a' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "alias": "Cust No" }'Adds one name to a field’s aliases — what the Map step does when an administrator accepts a mapping, and what Keep what worked? does for each name ticked after a clean run, both by one rule (rememberVerdict): never a name the field already answers to, another field’s own name or one it answers to, a column the import reads into two fields, a name with no words, or one told apart only by a symbol the matcher doesn’t read; a name the field reaches only by spelling is remembered, since a run on its own never guesses. A field is a connection’s: ?connector= names which, and is required.
It changes the aliases and nothing else of the field, as one compare-and-set on the list, so two of these at once both land and nothing anybody else changed is put back. A name the field already has — the same text bar case and the spaces around it, or the same name as the matcher compares names, punctuation and accents aside — is not added again: nothing is written, and the registry version does not move (added: false). A name with no words (only symbols, such as # or %) is refused (422 ALIAS_HAS_NO_WORDS): the matcher can never use one, since it matches no name with no words, so remembering it would only grow the list.
It is conditional on no version, so an If-Match naming one — or any value but * — is refused with 400 (code: IF_MATCH_NOT_TAKEN) rather than ignored: a client sending one believes the write waits on it. If-Match: *, which asks for nothing, is accepted, as everywhere If-Match is read.
The answer carries no registryVersion. This write is not conditional on one, so a version handed back could label changes you were never shown — and a version is what a later write sends as its precondition. Read the configuration again for one.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The org id the session was issued for. A token for one org can never read another.
Example
org_9f3cThe org id the session was issued for. A token for one org can never read another.
The module’s key or CRM API name — either is accepted.
Example
accountsThe module’s key or CRM API name — either is accepted.
The field’s CRM API name.
Example
Account_NameThe field’s CRM API name.
Query Parameters
Section titled “Query Parameters”The connection this is about, by id: one of the org’s, or your own. REQUIRED: absent or empty is 400 CONNECTION_REQUIRED, listing the connections this bearer may name, because nothing picks one for a request that does not say (design §14.8). Any other — another org’s, or another person’s — is 404 CONNECTION_NOT_FOUND.
Example
con_8f2aThe connection this is about, by id: one of the org’s, or your own. REQUIRED: absent or empty is 400 CONNECTION_REQUIRED, listing the connections this bearer may name, because nothing picks one for a request that does not say (design §14.8). Any other — another org’s, or another person’s — is 404 CONNECTION_NOT_FOUND.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The column name, as a file calls the field. Spaces around it are dropped.
Example
Cust NoResponses
Section titled “Responses”The field’s aliases, with the name among them.
object
The field’s aliases as they now stand.
Whether this call added the name; false when the field already had it.
Examplegenerated
{ "aliases": [ "example" ], "added": true}The body did not match the schema (issues carries the Zod issue list), an If-Match other than * was sent (code: IF_MATCH_NOT_TAKEN — this write is conditional on no version, and refuses one rather than ignore it), or: The request named no connection (code: CONNECTION_REQUIRED, with connections: the ones this bearer may name). Nothing picks one for a request that does not say (design §14.8).
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}No bearer, or one that is expired, revoked or no longer resolves to a member.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The bearer’s role is too low, or it was issued for a different org.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}No such module, field or connection, or it is not visible to this session.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The field’s aliases kept changing while this was written (code: ALIASES_BUSY): another writer changed them every time it tried. Nothing was written; send it again.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The name has no words — only symbols, so no name the matcher could ever match it by (code: ALIAS_HAS_NO_WORDS).
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}