internkim
APIEvery endpointCrm

crm_record_import

Import many organization or contact records from one CSV in one write: every record is written, or none is. Name the file in attachments and say in columns which of its columns fills each field. A record whose name is already held is skipped or updated as onDuplicate says, and an updated record keeps any field the file leaves empty. The person asking approves the import after seeing how many records it creates and updates; a file with a line that cannot be imported is refused with each such line and why. dryRun checks them all and writes nothing. `workspace_write` · approval · v2

POST
/tools/crm_record_import/invoke

Authorization

memberToken
AuthorizationBearer <token>

The tools internkim uses inside a company, callable from outside it. A token belongs to a person, and every call runs as that person, so a token can never do more than its owner can.

The first token is made signed in, from the settings screen. After that a token makes its own successors: POST /token for a new one, DELETE /token for the old one, so a script rotates without a browser. A token can neither mint a rung above its own nor revoke itself. Send Authorization: Bearer <token> on every request.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

text/plain

text/plain

text/plain

text/plain

text/plain

text/plain

text/plain

curl -X POST "https://example.com/tools/crm_record_import/invoke" \  -H "Content-Type: application/json" \  -d '{    "input": {      "kind": "organization"    }  }'

{  "toolName": "crm_record_import",  "outcome": "succeeded",  "selectedBackend": "device",  "effects": [    {      "objectType": "crm",      "effect": "created",      "id": "7a93de11-…"    }  ],  "result": {    "…": "the tool's own document"  }}