Skip to content
kirky
Centinela

A second look before a mistake is saved.

Centinela learns what’s normal for each customer and product, and speaks up when a value isn’t. It explains what’s unusual and why. The user decides; nothing is ever blocked.

Centinela

The report that was going to the wrong contact

A team sent a report to another customer’s contact. Centinela learns which domains each customer writes to and gives a heads-up before sending.

Scroll to play
What it watches

Four kinds of mistake it catches

  • Quantities out of range

    A value far outside what this customer usually orders of that product.

    1,200 when the usual is 10–40
  • The wrong recipient

    A report or invoice going to a domain this customer has never used.

    @otrodominio.example instead of @rioclaro.example
  • Likely duplicates

    The same record, with the same key fields, entered twice within a short window.

    Same customer, product and amount, 4 minutes apart
  • The nightly review

    The same rules run over what was saved during the day, including records entered outside the widget.

    3 findings in last night’s review
How it learns

From your history, with you in the loop

  1. 1

    It reads your history

    From day one: a CSV, one of your read endpoints, or the forms it watches in shadow mode. It needs about 30 records per customer to learn their pattern.

  2. 2

    It proposes patterns

    Statistics find candidate patterns — usual items, normal ranges, the domains each customer writes to. Kirky drops the spurious ones and explains the rest in plain language.

  3. 3

    You approve each rule

    Nothing runs until an admin approves it. You can also write a rule in your own words; Kirky turns it into a precise rule and shows it to you before saving.

  4. 4

    Your team tunes it

    When a user marks a warning “not applicable”, the threshold adjusts. The goal is fewer than one in five warnings dismissed.

Principles

Built to help, never to get in the way

  • It never blocksA warning offers Review, Continue and Not applicable. Saving is always the user’s call.
  • It fails openThe check takes milliseconds. If it ever takes longer than 800 ms, the save goes ahead as if Centinela weren’t there.
  • It never reveals what a user can’t seeWarnings come from templates and never show values from records the user’s role can’t read.
  • Personal data is pseudonymizedNames and emails are stored as keyed hashes, never in clear. Product codes and test names stay readable so rules make sense.
Integration

One call before you save

Call the check from your save handler, or tag a form with data attributes and let the SDK do it. The answer comes back in milliseconds.

save-order.ts
// save-order.ts · before saving the order
const result = await Kirky.sentinel.check("new-order", {
  customer: order.customerId,
  product: order.sku,
  quantity: order.qty,
});

// "review" → back to the form; anything else saves
if (result !== "review") await saveOrder(order);
Plans

Where Centinela runs

  • StarterNot included

    Help and Knowledge only.

  • BusinessNightly review

    Rules run over the day’s records every night.

  • ScaleLive, at save

    100,000 validations a month, plus the nightly review.

  • EnterpriseLive, custom limits

    Validation volume set for your contract.

Centinela questions

What teams ask about Centinela

Can Centinela stop a user from saving?

No. It warns and explains; the user reviews, continues or marks it not applicable. If the check is ever slow, the save simply goes ahead.

What does it need to start?

Your history. Load it once from a CSV, a read endpoint or the direct-database connector, or let it watch your forms in shadow mode until it has enough records per customer.

Who decides what gets flagged?

Your admins. Centinela proposes patterns and drafts rules, but nothing runs until an admin approves it, and every rule can be switched off.

What happens to personal data?

Fields like names and emails are pseudonymized with a key that belongs to your workspace before they’re stored. Duplicate fingerprints expire after 30 to 90 days.

See it inside a real app.

The demo is a sample app with Kirky already installed. Ask it anything you’d ask in yours.