AI ASSISTANT FOR PROPERTY SOFTWARE

Your docs.
Cited answers.Clear previews.

Build an assistant for your property management software. Ask in plain words for cited answers or an API request preview. Review the operation and its details. Previews do not run operations.

What Orrin does

Answers and actions,
in plain words

For product and engineering teams at property management software companies who want an assistant in their product without building an AI team.

  1. 01

    Answers questions

    Your users ask in plain words and get an answer from your documentation, with a citation they can open.

    How do I waive a late fee for a tenant?

  2. 02

    Prepares tasks

    Create a work order, schedule an inspection, send a rent reminder: each request is matched to one of your API operations and shown as a preview, with the values it read and its confirmation level. This release does not execute the operation.

    Create a work order for the leaking tap in 4B.

  3. 03

    Scoped to each user

    Every request carries the signed in user’s role and scopes in a short lived token signed with your own key, so the assistant works within that user’s permissions and no one else’s.

    Signed in as a leasing agent: units and tenants, read only.

Three confirmation levels

Previews a lookup request without calling your API. Previews a change to one record and describes the confirmation it would require. Previews a sensitive operation and describes the typed confirmation it would require.

Read

Lookup request, prepared for review

“Which units are vacant right now?”

Write

One record, prepared for review

“Create a work order for the leak in 4B”

Sensitive

Sensitive request, prepared for review

“Remind everyone with a balance”

Who it is for

Built for the teams
behind property software

Orrin is for companies that build property management software, and each of their teams gets something different from it.

  • Product leaders

    Put an assistant in your product without building an AI team. You decide what it answers from and which actions it may prepare.

  • Support leads

    Let your documentation answer the questions it already covers, and see the ones it does not, listed in your users’ own words.

  • Engineering leads

    Import the OpenAPI file you already have, sign a short lived token for each user with your own key, and review each proposed operation in the console.

How our AI works

The engine
behind every answer

Orrin turns a vendor’s documentation and API into cited answers and previews of the actions a user asks for. Every part below runs in the product today.

  • Document indexing

    Guides, pasted text, files and public pages are split into passages, a new one at every heading and long sections in overlapping pieces. Each passage keeps its heading and is indexed for its own workspace only, so an answer can point to the exact section it came from.

  • A language model for meaning

    Orrin runs all-MiniLM-L6-v2, a small open source language model, inside its own server. It turns every passage, question and API operation into a list of numbers that point the same way when two texts mean the same thing, even when they share no words. No text is sent to an outside AI service for this.

  • Hybrid retrieval

    Every question is ranked three ways at once: by meaning with that model, by BM25 keyword scoring for exact terms, and by hashed word and phrase vectors for overall similarity. The three are blended into one score, with meaning counting most.

  • Evidence gate and citations

    A passage counts as evidence only when its meaning is close enough to the question’s. An answer quotes at most two sentences whose own meaning is close, each with a numbered citation that opens the source passage. When nothing qualifies, Orrin says the documentation does not cover it rather than guessing.

  • Action matching

    A plain request is compared by meaning with every API operation you switched on, and the closest is previewed with its confirmation level. When two operations are equally close, Orrin asks which one you mean instead of choosing.

  • Parameter proposals

    The preview proposes the values it can read from the request, such as a unit, a date, an amount or a reason, only for parameters your operation defines, and lists the required ones still missing. This release does not execute the operation.

  • Risk labelling

    Each imported operation gets a suggested level. Reads are Read; anything that deletes, moves money, sends messages or changes records in bulk is Sensitive; everything else is Write. You review every label before an action is exposed.

  • Gap detection

    Questions the documentation cannot answer are counted on the Usage page and can be raised as support tickets, so your documentation team sees exactly what is missing.

  • Measured in the open

    The engine is scored on a fixed set of questions and requests it was never tuned on, written against two made up companies. The results, failures included, are on the evaluation page.

Good to know. Answers come from the documentation Orrin is given and can still be incomplete or wrong, so check the cited source before acting on one. Nothing the assistant says is legal, financial, tax or other professional advice.

Case study

One help center
becomes an assistant

Example company · not a customer

Brickwren is an example property management platform, not an Orrin customer: 14 help articles and an API with 14 operations. Both went through Orrin’s engine, the same code a workspace runs. This is what came out, word for word.

The inputhelp.brickwren.example

Help center

14 help articles

  • Record a rent payment
  • Late fees
  • Rent reminders
  • Online payments and autopay
  • Create a work order
  • Assign a vendor
  • Work order statuses
  • Schedule an inspection
  • Renew a lease
  • Move a tenant out
  • Security deposits
  • Owner statements
  • Team roles and permissions
  • Reports

API · OpenAPI 3

Brickwren API 2.4, 14 operations

5 Read3 Write6 Sensitive10 on, 4 off

Orrin saw

14 articles, indexed as 50 passages. 14 operations, labelled 5 Read, 3 Write and 6 Sensitive from their methods and wording. Brickwren switched on 10 and kept 4 off: record a payment, cancel a work order, send a renewal offer and refund a security deposit.

The outputWord for word

Ask

How do I waive a late fee for a tenant?

To waive a late fee, open the tenant's ledger, select the fee and choose Waive fee.1 You need the Waive fees permission to do this.1

  1. 1

    Late fees

    To waive a late fee, open the tenant's ledger, select the fee and choose Waive fee.

    0.88
  2. 2

    Late fees

    The late fee is added to the tenant's ledger the morning after the grace period ends.

    0.63
  3. 3

    Late fees

    Late fees

    0.62
  4. 4

    Late fees

    Late fees are set for each property in Property settings, under Late fees.

    0.62

Found 4 passages across 1 document.

Act

Waive the late fee for the tenant in 4B

waiveChargeSensitive

POST /charges/{charge_id}/waive · Waive a charge

No values found in the request. Still needed: charge_id, reason.

2 missing

Get started

Four steps
to get the work done

Connect your documentation, import your API and scope a test identity, then try cited answers and action previews in the console.

Step 01 · Knowledge

Connect your documentation

Add a public help page, paste text or upload Markdown, HTML, text, JSON and CSV.

Orrin indexes the content in your workspace so answers can cite the source passages.

Step 02 · Actions

Import your API actions

Import an OpenAPI specification.

Review candidate actions, choose which ones are exposed and label them Read, Write or Sensitive before trying an action preview.

Step 03 · Identity

Scope what each user can do

Generate a signing key, approve the sites your product runs on and mint a ten minute test token with a role and scopes.

Then have your backend sign one for each signed in user.

Step 04 · Release

Test, then add it to your product

Ask real questions, open each citation and check every action preview in the console.

Then add one script tag, and your users get the assistant in your product.

Actions

Built for
property work

The requests property teams make every day, each with its confirmation level. Import your OpenAPI file and Orrin previews requests like these against your own operations.

( 001 )Read

Preview a tenant lookup

Matches the question to your tenant lookup operation and shows the call it would make, with the unit read from the request.

( 002 )Read

Preview a vacant unit search

Matches the request to your units operation. Only the filters that operation defines can be proposed, each read from the request.

( 003 )Write

Preview a lease renewal notice

Matches the request to your renewal operation, proposes the unit from the request and lists every required value still missing.

( 004 )Write

Preview a maintenance request

Matches the request to your work order operation, proposes the unit and description from its words and lists any required values still missing.

( 005 )Write

Preview a vendor assignment

Matches the request to your assignment operation and proposes the work order number from the request. A vendor it cannot read is listed as missing.

( 006 )Write

Preview an inspection booking

Matches the request to your inspection operation and proposes the unit, the type of inspection and the day from its words.

( 007 )Read

Preview an owner statement lookup

Matches the request to your statement operation and shows the call it would make, listing any required value it could not read.

( 008 )Sensitive

Preview a rent reminder

Matches the request to your reminder operation. The preview describes its Sensitive confirmation level and lists any required values still missing.

( 009 )Write

Preview a call note

Matches the request to your notes operation and proposes the note from its words for the user to review.

Safety

Safety
by design

  • A preview before any change

    Every action request becomes a preview: the operation Orrin matched, its confirmation level, the values it read from the request and any still missing. This release does not execute the operation. A preview never calls your API.

  • Only what you switch on

    Orrin suggests a level for every operation you import, and you review it. Nothing is exposed until you switch it on, and only exposed operations can be matched.

  • Scoped short lived tokens

    Your backend signs a token for each user that lives for minutes and carries their id, company, role and scopes. The console generates your signing keys and verifies the tokens they sign, so every request belongs to one user and never to a shared service account.

  • An audit log in every workspace

    Documents added and removed, questions asked, previews shown, keys created and revoked, members invited: each is recorded with who did it and when, and the whole log downloads as CSV.

  • Fair housing rules

    The acceptable use policy forbids using the assistant to filter, rank, describe or steer units, applicants or tenants by any protected characteristic, and forbids mapping actions for screening decisions, evictions or legal advice.

  • No training on customer data

    Your documents and questions are never used to train models. Deleting a document removes its passages from the index at once.

The Security page lists every practice and whether it is in place.

Analytics

Know what
your users ask

The console counts questions, grounded answers, unanswered questions and action previews every day, and exports them as CSV. Unanswered questions show the gaps in your documentation.

  • Questions

    Every question asked in the workspace, counted by day.

  • Grounded answers

    Answers backed by a cited passage from your documentation.

  • Unanswered questions

    Questions your documentation could not answer. This is your documentation backlog.

  • Action previews

    Requests matched to an operation you exposed, counted by day.

  • Support tickets

    Any unanswered question can become a ticket, with replies and a status.

  • CSV export

    Daily counts, conversations and the audit log, downloadable for your own reporting.

Developers

One token
for every user

Your backend signs a short lived token for each user with a key generated in the console, and the assistant checks it on every request, so each answer and preview belongs to one user and stays within their scopes.

Mint a token on your backendNode, jose
// Your backend, whenever the assistant asks. The token lives ten minutes.
app.get("/api/orrin-token", requireSession, async (req, res) => {
  const token = await new SignJWT({ company: req.user.companyId, role: req.user.role, scopes: req.user.scopes })
    .setProtectedHeader({ alg: "EdDSA", kid: ORRIN_KEY_ID })
    .setSubject(req.user.id)
    .setIssuedAt()
    .setExpirationTime("10m")
    .setAudience("orrin")
    .sign(privateKey);
  res.type("text/plain").send(token);
});

About the founder and team

The people
behind Orrin

I’m building Orrin, an AI assistant that lives inside property management software.

Property platforms hold a lot of answers and a lot of routine work. Orrin lets their users ask in plain words. It answers from the software vendor’s own documentation, with a citation they can open, and prepares tasks in the platform, showing exactly what will change so the user can confirm it first.

Read why Orrin is evidence first and confirmation first

Mathew Onyekachi

Mathew Onyekachi

Founder, Abuja, Nigeria

LinkedIn ↗

Pricing

Plans that grow
with your user base

Compare plans and read the FAQ

Sandbox

Free

For building and testing in the console.

200 test conversations a month

  • Cited answers from your documentation
  • OpenAPI import and action previews
  • Signing keys and test tokens
Start free

Starter

$299 a month

Billed monthly

For teams starting with a focused set of actions.

3,000 conversations a month

  • 10 actions
  • Audit log and conversation history
  • Email support
Get started

Growth

$999 a month

Billed monthly

For growing platforms with more operations to preview.

15,000 conversations a month

  • Unlimited actions
  • Usage export
  • Everything in Starter
Get started

Scale

$2,499 a month

Billed monthly

For larger user bases.

50,000 conversations a month

  • Priority support
  • Everything in Growth
Get started

Enterprise

Custom

Custom volume and terms for the largest platforms.

Custom volume

  • Custom volume and terms
  • A written agreement covering data processing and security
Talk to sales

Get started

Start free,
or talk to us.