Contacts

One record, many roles — tenant, vendor, owner. Adding, linking, and exporting to your phone as a vCard.

On this page

A contact is a person or company you do business with. One contact record can play many roles over time: today's prospective tenant becomes tomorrow's tenant; the plumber who fixes a leak this month becomes a regular vendor; a property owner referred someone who turned into a lead. Instead of duplicating the same person across modules, the system keeps one record and lets it wear many hats.

What a contact holds

Each contact carries the standard identifying fields:

  • Name (required)
  • Phone
  • Email
  • National ID (Iqama / Hawiya for Saudi residents)
  • Company name (if they represent an organization)
  • Job title
  • National address (Saudi national-address format: street, district, city, postal code)

You can attach notes for context the structured fields don't capture (e.g. "prefers WhatsApp," "always pays a week early," "speaks only Arabic").

Adding and finding contacts

Open Contacts → Add contact to create one. A name and a phone number are both required: most internal linking flows search by phone number first, because two people often share a surname but rarely a phone.

The Contacts page (/app/contacts) is your CRM-style list view: filter by role, search by name/phone/company, sort by recency or alphabetical. Like every other list page, the URL preserves your filters. You can bookmark "all active tenants" or "all vendors I've used this year" and come back to the same view tomorrow.

Roles a contact can play

Roles aren't a field on the contact itself. They're the relationships the contact has with other records:

  • Tenant: Listed as the lessee on one or more contracts.
  • Prospective tenant: On the receiving end of a lease offer that hasn't been signed yet.
  • Owner: Listed as the property/unit owner on a contract.
  • Vendor: Listed as the supplier on one or more expense records or maintenance tasks.
  • Representative: The named representative on a contract (e.g. property-management company signing on behalf of the owner).

A single contact can be all of these at once: the local plumber might be your vendor for an expense and your tenant in one of your residential units. The system tracks each relationship independently; closing the contract doesn't remove the contact, it just removes that one relationship.

Searching and linking

Contacts surface wherever a person or company is named in a flow:

  • The lease-offer wizard asks for the tenant: pick an existing contact or create a new one inline.
  • The expense form asks for the vendor (same picker).
  • The deposit-refund flow asks who the refund goes to (same picker).
  • Maintenance requests ask for the reporter and the vendor (same picker).

Searching by phone number is usually the fastest path: it's unique per person in the real world, and the search matches partial strings (typing 055 finds every contact whose phone starts with 055).

Download as a vCard (to your phone)

On the contact detail page, look for the "Download vCard" action. It generates a .vcf file containing:

  • Name (parsed into first / last / middle parts)
  • Phone (typed CELL)
  • Email
  • Company name + job title
  • National address (street + district + city + postal code + country = "Saudi Arabia")

The file follows the vCard 3.0 standard, which iOS Contacts, Google Contacts, Outlook, and every modern address-book app accept natively. The typical phone flow:

  1. Open the contact's detail page on the web or mobile app.
  2. Tap Download vCard.
  3. Open the downloaded .vcf file on your phone (or email it to yourself first if you're on a desktop).
  4. Your phone's Contacts app prompts you to save it as a new contact.

This is especially useful for vendors: once their contact is in your phone's address book, you can call or message them directly from your phone without bouncing through the app.

Statement of account (tenant PDF)

If the contact holds at least one contract, the detail page offers Statement of account. It produces a PDF covering all of that tenant's contracts in one document, in the language you are using the app in.

Pressing the button asks you for the period first: a From date and a To date, or All dates for the whole tenancy. Choosing a period limits the tables to what falls inside it. Set both dates or neither.

What is on it:

  • A summary: total billed, total paid, balance outstanding, with a line naming how many contracts the figures cover. With a period set, the first two become period figures and carry a label that says so.
  • One block per contract (reference, property, units, period, status) with its installments: date, expected, paid, outstanding, status.
  • Payments received, one row per payment. A payment you recorded once for a multi-unit contract appears once, with its PMT- reference, not once per unit.
  • Deposits and other charges, in their own section. Deposits are not rent, so they are never added into the totals above.
  • Notes, which is where the document tells you what it is not counting.

Three things it says out loud rather than leaving you to notice:

  • Money received but not yet verified is listed as received and is not counted as paid. A payment awaiting review can still be declined, and a statement is something the tenant keeps.
  • Money the tenant paid that is not yet linked to a contract is reported separately. It has settled nothing until it is linked, but it is money they handed over.
  • Contracts you do not have permission to see the figures for are left out, and the count is printed on the document.

What the period changes, and what it does not

The period narrows what is listed. It never touches the balance outstanding.

  • It affects: each contract's installments (by due date) and the payments-received list (by date paid). Note the difference in basis: an installment due in March and settled in June falls inside a March period in the schedule table and inside a June period in the payments list.
  • It does not affect: balance outstanding, which is always the full amount owed as of today including earlier periods. Nor deposits, other charges, or money not yet linked to a contract, which are balances held today rather than activity during a period.

No contract is ever dropped because of the period. A contract with nothing due inside it still appears, saying so, with its full balance, so its absence can never be read as nothing being owed.

The file is named after the contact, and carries the period if you chose one, so neither two tenants' statements nor two periods for one tenant collide in your downloads folder. Statements are a snapshot of the moment you produced them, not a stored record, so regenerate rather than reusing an old file.

Seeing this needs permission to read both rent amounts and receivables on the property. Without both, the button does not appear. The statement is refused rather than produced with gaps in it: a document that looks authoritative and quietly is not is worse than no document.

Free-plan caps

Free workspaces are capped at 10 contacts total. Hit the limit and you'll be prompted to upgrade before the next contact can be added. See Plans and billing.