Skip to content

What the AI does

AI proposes. A person accepts.

Nothing is written to your CRM because a model said so. Every feature below produces something you look at and agree to. An agent connected over MCP can save a template, and can change one setting at a time on an import a person has open, without anybody looking first. It cannot run an import.

That is not caution for its own sake. An import is a bulk write to a system of record — the cost of a wrong answer is not one bad row, it is four hundred, and finding them afterwards is the expensive part.

Asked by the draft, or by Suggest columns for the N unmapped fields in Map columns’ Ask AI — for every module of the file in one call. Given your columns and a few sample rows, proposes a destination field for each column with a confidence and a reason. It is told which field each module is recognised by — the key decided on the first stage of Map fields, or the rule the match assistant has just proposed — so the column that carries the key goes there without argument. It proposes mappings and nothing else; how a record is recognised is the next feature’s question.

Every proposal is a row in the field list, waiting: Use, Modify, No thanks, or Not quite… to say what is wrong with it. One bar over the list says how many are waiting and how many of them are sure, and takes the sure ones in one press — a required field’s included, but never the key, a formula, a lookup or a guess that would replace a mapping already there. A picklist is taken as a mapping whatever its values: the row says how many are not yet options, and those are matched at Translate values.

Every proposal is validated against your organisation’s real fields before you see it. The model cannot invent a field; a proposal that fails validation is downgraded or dropped rather than shown to you. What arrives is a set of mappings that at least refer to things that exist.

Costs 6 credits for a file of up to 25 columns, 12 up to 100 and 24 beyond that — once per file. See Map fields.

Match — how an existing record is recognised

Section titled “Match — how an existing record is recognised”

Asked by the draft for every module at once, or answered in a question to a module’s Which rows & existing on Map fields — whose Ask AI also proposes which rows the module takes, and when a record a row finds is updated (its …update only when; on a card that leaves one as it is, as a guess that also sets Update it). It proposes the one field an existing record is recognised by, the expression over the row that produces the value to look it up by, how it is compared, and — when the file makes it plain — a reading of the file as a whole: every row new, some rows existing, or updates only. Only a key can be named: a field the CRM enforces as unique, the organisation’s default key, or a writable text, email, phone, website or number field. The proposal waits in the card with Use this, No thanks and Not quite…, with the values it produces on your sample rows beside it, run on the server; a declined rule is remembered and not proposed again. The draft’s is priced by the modules asked, not by the columns — 3 credits for one or two, 5 up to five and 10 beyond that; a question on the card is priced as any question in a conversation.

Maps the values in your file onto the values a field actually accepts. This is the step the free matcher cannot do: it is exact-then-fuzzy, which is right for Australia and useless for Aus.

Three properties worth knowing:

  • Every option it names is checked against the field’s own before you see it — picklist options from your schema, lookup targets only from records your browser already has. A name two records share resolves to neither.
  • A very long picklist is not sent whole. Some fields hold thousands of options — State and Country are the usual ones — so the question carries the options nearest the values in your file rather than all of them. Any real option is still accepted as an answer, so nothing is ruled out by not being shown.
  • Certainty decides what happens. An answer that is confident and clearly ahead of its runner-up is marked sure, and the field’s bar takes those in one click. Anything else arrives as candidates, best first. Nothing is written until you use one.

That last rule is the point. A confident wrong answer is the expensive kind, because it is the one nobody reads.

It has to read the values: what a value means cannot be worked out from its shape. So it is offered when your organisation shares values with AI (Allowed), and under Masked for a picklist or multi-select field filled straight from a column — that column’s distinct values are sent, without their counts, and nothing else of the file. Under Masked a lookup’s values, which are the names of records, and a formula’s are not sent: the field says so, and its values are matched in your browser. It never reads a field excluded from AI, or one filled from a column named like a field excluded from AI: Translate values says so on that field instead of offering to ask. Under Never, Translate values matches every value in your browser instead, and says so.

Costs 3 credits for up to 25 values, 5 up to 100 and 10 beyond that. See Value maps.

Formula assist — an expression from a description

Section titled “Formula assist — an expression from a description”

Ask in plain English; get an expression. It is in every formula editor: a field’s formula, the value an existing record is recognised by, a lookup’s search value, an update guard, an import gate and the row filter. For the last three the assistant is told what the expression is for — true updates, true imports, true keeps — and an answer that is not true or false is sent back to be rewritten.

The expression is compiled and run against your sample rows before it is returned. What comes back has executed at least once, on your data. That rules out the most annoying failure mode — a plausible-looking formula that throws on the first row. The exceptions are what exists only while an import runs: an update guard that reads old or next, and any expression that reads records (rec.*), is compiled but not run until then. The row filter may not read records at all — it runs before any record of the row exists — so an answer that does is sent back to be rewritten, and one that still does comes back marked as not working.

Costs 3 credits for a short question and up to 12 for one that carries a lot of context. See Expressions.

In the editor it is one Ask AI, beside Show helpers: a conversation about the expression you are editing. Describe what it should do, or — while a preview row fails — take its suggestion, Why does this fail on my rows?, which sends the expression on screen with the question; the server runs it before the model is asked, and the answer is a fix with the reason on its line. What comes back waits in the editor as a guess: Apply uses it, Undo puts back what it replaced, and one that could reach past its row is not run on your rows until you choose to.

The rows that go with the question are chosen, and listed before they go. Three of them: rows the formula’s result fails the field with first (a date that does not parse, a value that is not one of a picklist’s options), then one row of each shape the results come in that has not gone yet (0412 345 678, +61 412 345 678), then the first rows. Beside them goes how every row of the file comes out, counted by shape, so the assistant knows the column is written five ways even when it is shown three. This one’s wrong on a preview row adds that row too, with what it should be if you say, beyond the three — up to five of them — and opens the ask; a row in the list is left out with its ✕. What goes follows your organisation’s AI data setting, as sample rows do: the shapes are only counted under deny, or where a field or column is excluded from AI.

Shift+Enter makes a new line in a question, and Enter sends it, in every Ask AI.

The conversation is kept with the import, one per expression — a field’s formula, its match value, a lookup’s search value, Which rows, the update rule and the row filter each have their own — so it is there when the editor is opened again, by you or anyone else who can open the import, and goes with its file. What waits in the editor is not kept: once the editor is closed, what became of an answer is read off the import — used, changed by hand, or not taken. A question asked while a change of yours is still being saved is not kept. See Your data and the model.

A helper library’s page has an Ask AI of its own, for a helper function: described in plain English, written into the library on the page, and checked on the server — the library compiled, loaded in the sandbox and its examples run — before it is shown as a change to use or not. See Helper libraries.

Takes one of the problems on the Validate step, or one group of a run’s failures, and explains it in your organisation’s own vocabulary, proposing a fix where there is one: a column or a formula for a field, how an existing record is found, what a value becomes, or a module’s row rules — which rows it takes, and when a record a row finds is updated. What it proposes lands on Map fields as guesses, and the answer says where each went. A rule it writes for the file on screen is run against that file’s rows first; one for another file of the import is only checked to compile, because only the file on screen’s rows are sent. Nothing it proposes is applied. A fix lands as a guess you use or turn down; where the page cannot offer one — the file changed while it was asked, a column is gone, an update rule has no box to wait in — it says so and offers nothing. Before you decide, the page previews a guess only if a safety check accepts the expression: one over the row, the record context, the old and next records and your helpers, using the language’s plain functions, with the constructs that can run for ever or reach the session left out. The check excludes those constructs; it does not prove that a helper of yours ends. A Which rows guess that passes shows how many rows it takes, and a rule for finding existing records runs in its test. A formula it writes waits until you run it in the editor or use it. An update rule is not run on the card at all; opened in the formula editor it is previewed against stand-in records, and it compares real ones only while the import runs. Validate’s Ask AI reads all its problems together, and Run’s asks about the run, before it or after it; both land their fixes the same way.

This is where AI earns its place. Not at the start, where the free matcher is already good, but here — where somebody is looking at a validation error that names a field they did not choose, in a file they did not create.

Costs 4 credits, and up to 16 when there is a great deal for it to read.

Chat — for questions the others are not shaped like

Section titled “Chat — for questions the others are not shaped like”

A conversation with tools: read the schema, propose a mapping, test an expression, explain a problem. Use it when your question is “why does this file behave like this” rather than “map this column”.

Costs 2 credits per message, 4 or 8 for one carrying a lot of context. Ask AI on Map fields’ Which rows & existing and Map columns, and Not quite… on a proposed mapping or match rule, ask through it too, about what is in front of you — all but Suggest columns for the N unmapped fields, which is the auto-map above. A conversation is kept for your plan’s history window so a follow-up can build on it — see what is kept.

File assistant — what is wrong with the file

Section titled “File assistant — what is wrong with the file”

Ask AI on Source reads the file on screen — a dozen of its records, its last few lines, and the lines that did not parse — and says what is wrong with it. It answers with a guess, never with rewritten rows: a reshape as named steps (another row as the header, or a header written for it, rows dropped, a column renamed or dropped, values filled down), a different way of reading the file, or a row filter. Each step is tried on the records it was shown, and a row filter is run in the sandbox, before it is offered; each waits for you to use it or turn it down. It can also make a sample file for the modules you are importing into.

Costs 5 credits, and 10 or 20 for a question that carries a great deal; an answer that proposes nothing you can use costs nothing. See Ask AI on Source.

Ask AI on a module’s page proposes what to write about its fields: a description, a format, examples, the case their values are written in, a rule they must pass, and which fields look personal enough to exclude from AI. It works from each field as your CRM describes it and from up to 20 of the module’s records, read for each ask under your AI data setting and kept nowhere: Sloose stores none, and the AI gateway keeps a record of the ask (its organisation, model, size and cost) but nothing it carried; a field excluded from AI is never read. Its examples are made up, never copied from a record. A rule is run in the sandbox on its examples before it is offered, and nothing is saved until you save the page. Only an administrator can ask.

Costs 2 credits for up to 10 fields, 3 up to 25 and 6 beyond that; an ask that proposes nothing is free. See Fill in with AI.

AI activity, at the right-hand end of an import’s own bar, lists every question asked of the AI on that import, newest first: where it was asked, what was asked, what the answer said, and what became of what it proposed — used, changed by hand, turned down, or still waiting. A Draft everything is one entry, however many parts it drafted, and so is a template’s Fill the gaps, headed as what it asked about: what the template left open, never the whole import. It opens beside the step, so the page stays usable, and reads the newest questions again as it opens, a colleague’s included. An import opens with its newest thousand; when there are older ones the button’s count ends in + and the list ends with Show older, which reads them a page at a time. An ask the import did not keep — in the demo, or one asked while something was still waiting to be saved — is listed too, and says it is on this page only.

Each entry has Go there, which opens the part it was about. For an answer on Map fields, Undo turns down everything it proposed while you have used none of it; once you have used some, Turn down the rest turns down what still waits and leaves what you used alone — each guess as its own No thanks or Dismiss would. Neither is offered while somebody’s run holds the import. An answer on Source, or in a formula editor, is undone where its guesses wait, so its entry has Go there alone. Explain on a run’s error group is listed like any other ask on Map fields, with Undo for the guesses it made, and so are Explain on one of Validate’s problems, Validate’s Ask AI over the whole list, and Run’s own.

Every call about an import carries your schema — the modules and fields you actually have, with the annotations an administrator has written. Fill in with AI carries the fields of the one module it is about, with a sample of that module’s records, and a helper library’s Ask AI the library rather than your schema.

That is why annotations pay for themselves. A field described as “The account’s billing region; two-letter state code” gets a better proposal than one identified only as CF_Region_2. The cheapest improvement to AI quality here is not a better model; it is telling it what your fields mean.

Samples, not files. Between 3 and 20 rows depending on the feature, as they are, masked, or nothing sent at all — your choice, per organisation — and fields excluded from AI left out under every choice, with their examples standing in for them.

The full detail is on Your data and the model. If you are deciding whether to enable any of this, read that page rather than this one.

Metered against your organisation’s credit balance, reserved when a call starts and settled when it finishes. A failed call is not charged. See AI credits.

A deployment with no AI configured says so — AI_NOT_CONFIGURED — rather than failing obscurely. When the model can’t be asked just now (the AI service is out of capacity, rate limited or down), every ask says Sloose’s AI is unavailable right now — AI_UNAVAILABLE — with nothing changed and nothing charged, so the same ask works once it is back. An organisation with no credits gets CREDITS_EXHAUSTED and everything else keeps working.

None of these is an error state you need to fix to use Sloose. The whole product works without any of this; the AI is an accelerator, not a dependency.

While a run holds the import — one started somewhere else, by a colleague or by you in another window — Ask AI, the draft and the guesses made without the AI wait for it to end, each saying whose run it is, and nothing is sent or charged meanwhile — Explain on a run’s error group or one of Validate’s problems, and Validate’s and Run’s own Ask AI, included, since they land guesses too. See Run the import.

Matching and mapping proposals, testing an expression, saving templates, and changing an open import’s mappings, match rule and value maps are available to an agent over MCP, under exactly the same server-side rules — see Connect an agent.

Report a problem with this page

sloose.com