Welcome to KeyTurn

Everything you need to manage rentals. properties, tenants, rent, statements. without the AppFolio bloat.

Welcome

This guide walks you through every part of KeyTurn step by step. It's written for the person actually doing the work. owners, admins, and members of your property management team.

How to use this guide

  • Browse the sidebar on the left. jump to any topic.
  • Print it. hit Cmd+P (Mac) or Ctrl+P (Windows). The sidebar disappears and you get a clean printable PDF.
  • Search this page. Cmd+F / Ctrl+F to find any word.

The KeyTurn data model in one diagram

Everything in KeyTurn revolves around one shape. Once this clicks, the rest is intuitive:

Owner
Who the property belongs to. Often an LLC or trust, not just a single person. You cut them a check every month.
Property
One rental address. Single-family is one unit; multi-family has several units under one property record.
Tenant
Has portal access. Pays rent, views their lease, submits maintenance requests, sees documents you share.
Lease
Marley reads the PDF and pulls out term, rent, deposits, late fee policy. You review and save.
Rent Payment
Auto-created when Stripe receives payment. Or log it manually for checks, cash, Zelle, money orders.
Monthly Statement
Auto-generated from the month's rent and expenses. You review, publish, then email the consolidated PDF to the owner.
Maintenance Ticket
Tenant opens via portal, or you log it. Priority, photos, vendor assignment, cost tracking.
Vendor
Gets a magic-link email to the job. Marks it complete on their phone, uploads work photos. No KeyTurn login needed.
↑ Each month's statement is emailed to the Owner, closing the loop.

Owners own properties. Properties house tenants who sign leases that produce rent. Rent + expenses roll up into a monthly statement that goes to the owner. Maintenance happens at the property level, gets assigned to vendors. That's the whole system.

↑ Back to top

Quick Start. Your First 30 Minutes

If you just signed up, do these in order. Skipping a step doesn't break anything but each one unlocks the next.

1. Settings → Bank Accounts (5 min)

Texas property managers are legally required to keep security deposits in a separate trust account from operating funds. Add both before adding properties so you can link them as you go.

  1. Go to Settings in the sidebar
  2. Click + Add Bank Account
  3. Add your operating account (nickname like "Operating", select type "operating", enter bank name + last 4)
  4. Click + Add Bank Account again
  5. Add your trust account (type "trust"). TREC 535 requires this for security deposits

2. Settings → Online Payments (5 min)

Connect your Stripe account so tenants can pay rent online and money lands directly in your bank.

  1. Settings → Online Payments → Set up payments
  2. You'll be redirected to Stripe to enter business info, ID, and link your trust account
  3. Takes 5-10 minutes. When you return, the badge flips to green "Active"
Texas-only note Connect your trust account (not operating) for rent deposits, per TREC 535. The operating account is for your management fees after disbursement.

3. Settings → Google Drive (3 min)

Connect Google Drive so leases, notices, and inspection reports live in YOUR Drive, not ours. KeyTurn keeps an index but never deletes your files.

  1. Settings → Document Storage → Connect Google Drive
  2. Sign in to Google with the account that should own the files
  3. Grant permissions when prompted

4. Import existing data (15 min)

If you're coming from AppFolio, use the importers:

  1. Export Rent Roll, Owner Directory, Property Directory, and Tenant Directory from AppFolio
  2. Settings → Import → upload each file
  3. KeyTurn parses them and creates the matching records

If you're starting fresh: add Owners first (the people you cut checks to), then Properties (assigning each to an owner), then Tenants, then Leases.

5. Settings → Team (2 min)

Invite your teammates. Only the org primary (you) can invite. admins and members cannot, by design (every new user can affect your subscription cost).

  1. Settings → Team → + Invite Teammate
  2. Enter their email and pick a role (admin = full access, member = no billing, viewer = read-only)
  3. They get an email with a link to set their password
↑ Back to top

Properties

A property in KeyTurn is one address you manage. Single-family homes are one property. Multi-units (a fourplex, for example) are still one property. you track the units within it separately.

Add a property

  1. Properties → + Add Property
  2. Fill in address, type (Single Family / Multi Family / Condo / etc.), bedrooms, bathrooms, square footage
  3. Click Save

The property detail page

Click any property row to open its detail page. You'll see:

  • Owner. who you cut checks to. Click to view their info.
  • Money. fees, bank accounts, mortgage/insurance/tax/HOA payments tracked here
  • Maintenance Tickets. active issues for this property
  • Documents. leases, notices, inspection reports stored in Drive
  • Property Care. keys, warranty info, entry policy
  • History. recent changes to this property

Set the Street View photo

Each property can have a hero photo. By default we try to grab a Google Street View image of the address. To customize:

  1. Open the property → click the photo
  2. Preview the Street View result, OR upload your own
  3. Save
↑ Back to top

Owners

An owner is the person or entity that owns the property and receives the rent (minus your fee). Add the owner BEFORE the property so you can link them on creation.

Add an owner

  1. Owners → + Add Owner
  2. Enter name (or entity name for LLCs/trusts)
  3. Email is required if you want to invite them to the owner portal
  4. Phone, mailing address, tax ID (for 1099s), PM fee % (overrides the org default)
  5. Link to properties they own (checkbox list)

Invite an owner to their portal

Owners can log in to see their statements, payment history, and maintenance activity. To invite:

  1. Owners → find the owner → click Invite to Portal
  2. They get an email with an activation link
  3. They set a password and can log in at keyturnpm.com/portal
↑ Back to top

Tenants

A tenant is a person living at one of your properties. Each tenant gets a row even if multiple people are on the same lease (co-signers, married couples, etc.).

Add a tenant

  1. Tenants → + Add Tenant
  2. First name, last name, email, phone
  3. Check "Email a tenant portal invite when saved". they'll get a welcome email automatically
  4. Save
Pro tip The auto-invite checkbox saves you from having to remember to manually click "Send Portal Invite" later. Default is on. Uncheck only if you're adding a historical tenant who doesn't need portal access.

Tenant portal. what they see

When a tenant logs in, they see three things and nothing else:

  1. Pay rent. view current balance, pay via card or ACH
  2. Documents. their lease, notices, inspection reports you've shared
  3. Maintenance. report a new issue, see status of past tickets

They cannot see other tenants, owner info, your fees, or anything administrative.

↑ Back to top

Leases

A lease ties a tenant to a property for a date range at a rent amount. KeyTurn can either generate the lease record manually OR extract it automatically from a PDF.

Upload a lease (recommended)

  1. Leases → Upload Lease
  2. Drag in the signed PDF
  3. KeyTurn reads it and pulls out tenant name, property address, start/end dates, rent amount, security deposit
  4. Review the extracted fields, fix anything wrong, click Save
  5. The PDF goes to your Google Drive linked to the lease record

Add a lease manually

If you don't have a PDF yet:

  1. Leases → + Add Lease
  2. Pick the property and tenant from the dropdowns
  3. Set dates, rent, security deposit, late fee policy
  4. Save. Upload the PDF later via the Documents tab on the property page.

Renewal & expiration

Leases status auto-updates:

  • Active. within the date range
  • Expiring. end date within 60 days
  • Expired. past end date with no renewal
↑ Back to top

Maintenance

The maintenance system handles the full ticket lifecycle. from a tenant reporting a leaky faucet to a vendor marking the job done with photos.

The maintenance flow at a glance

1
Tenant reports issue
Via tenant portal, or you log it manually from the Maintenance page.
2
Ticket created. status Open
Appears in the Maintenance view, grouped under the property.
?
What priority?
If Emergency
⚠️ PM team emailed immediately
If Normal
📬 Goes into daily digest email
3
PM clicks Manage on the ticket
Opens the full management modal with vendor assignment, photos, cost fields.
4
Assign vendor + magic link auto-sent
Vendor gets an email with a unique link to the job. No login required.
5
Vendor opens link on their phone
Sees property address, tenant photos, contact info. Two buttons: Mark In Progress / Mark Complete.
6
Vendor marks complete + uploads photos
Adds optional notes. KeyTurn emails the PM team a "Job done" notification with photo count.
7
Ticket auto-archives after 14 days
Keeps the board focused on what still needs attention. Toggle "Show old completed" to bring them back.

Report an issue (your side)

  1. Maintenance → + Report Issue
  2. Pick property, set title, description, priority
  3. Save. ticket is now Open

Manage a ticket

  1. Maintenance → click on a property tile → click Manage on the specific ticket
  2. Set status, assign a vendor from the dropdown, add scheduled date, costs
  3. Save. If you assigned a vendor, they automatically get an email with a magic link.

The vendor magic link

Vendors don't need a KeyTurn login. When you assign them:

  1. Email sent to vendor with a "Open job" button
  2. They tap it on their phone, see the job: address, description, tenant photos, contact info
  3. They tap Mark In Progress when they start
  4. When done, they tap Mark Complete, add notes, upload photos of the finished work
  5. You get a "Vendor marked the job complete" email instantly

If the vendor loses the email or the link expires, open the ticket and click 📨 Resend job link to vendor. New link, new 90-day expiry.

Auto-archive

Completed tickets older than 14 days hide automatically to keep the page focused. Tick "Show old completed tickets" in the header to bring them back.

↑ Back to top

Money

The Money page is your cash flow command center. rent collected, expenses paid, who's overdue.

The three summary cards

Top of the page shows:

  • Collected this month. total rent paid where paid_date is in the current month
  • Outstanding. total unpaid rent + late-but-not-overdue
  • Overdue. rent past due by more than 5 days (with count of how many tenants)

Record a rent payment

  1. Money → + Record Payment
  2. Pick property and tenant, enter amount and due date
  3. Status: Pending (default), Paid, or Late
  4. Save

Once Stripe is live, online payments auto-create these rows. no manual entry.

Record an expense

  1. Money → + Record Expense (red button)
  2. Enter amount, date, category (Repairs / Insurance / Mortgage / Utilities / Property Tax / HOA / etc.)
  3. Pick the property (or "No specific property" for org-wide expenses)
  4. Add description
  5. Upload a receipt. photo or PDF. Goes to your Google Drive automatically.
  6. Save
Tax-time superpower Categorized expenses with attached receipts make year-end Schedule E prep painless. Your accountant will love you.

Filter and search

Top of the page has filters: All / Outstanding / Overdue / Paid. Search box finds by property, tenant, or note text.

↑ Back to top

Statements

Monthly statements are the deliverable you send to each owner. They show rent collected, your fee, expenses, and net to owner. for every property they own. This is THE feature your owners care about most.

The statement workflow at a glance

1
1st of month (or whenever you're ready)
Open Statements, pick the month. Defaults to last month.
2
Click + Generate Drafts
Backend creates one draft per property, auto-filled from rent payments + expenses + PM fee. Zero manual entry.
?
Review each draft. numbers look right?
If yes
✓ Tick the checkbox
Needs adjustment
✎ Click Edit → fix it → save → tick the checkbox
3
Click "Publish Selected"
Bulk-publish bar at top shows count. All ticked drafts flip to Published in one shot.
4
Click 📧 Email per owner
Owner gets ONE consolidated PDF covering ALL their properties. even if they own six. One email per owner, not per property.
↺ Edge case: tenant pays late
A
Leave that property's draft sitting unpublished
Publish the other clean ones. Wait for the late tenant to pay.
B
When they pay: open the property → 📋 Draft this month's statement
Regenerates JUST that one draft with the new payment included. Publish + email.

Step 1. Generate drafts

  1. Statements → pick the month at the top (defaults to last month)
  2. Click + Generate Drafts
  3. One draft row appears per property, pre-filled from rent payments + expenses + the PM fee

Step 2. Review each one

  1. Click ✎ Edit on a row to see the line items
  2. Adjust amounts, add notes ("Late fee waived this month"), confirm the math
  3. Close the editor

Step 3. Approve and publish

  1. Tick the checkbox next to each draft you're happy with
  2. The dark green bulk-publish bar appears at the top with a count
  3. Click Publish Selected → confirm
  4. All selected drafts flip to Published

Step 4. Email the owner

  1. On any published row, click 📧 Email
  2. Confirm. owner gets a single PDF email covering ALL their properties for the month
  3. One owner = one email. even if they own 6 properties, they get one consolidated PDF

Per-property fast path

Instead of generating drafts for everything, you can do one property at a time:

  1. Open the property → scroll to Money card → click 📋 Draft this month's statement
  2. It generates just that property's draft and jumps you to the Statements view filtered to it
  3. Use this when one tenant pays late and you need to refresh just their statement

Late payment workflow (very common)

Say 10 tenants paid on time and 2 are late. On the 1st:

  1. Generate all drafts
  2. Publish the 10 clean ones
  3. Leave the 2 late ones in draft
  4. When the late tenants finally pay, open each property → 📋 Draft this month's statement → regenerates with the new numbers
  5. Publish + email
Auto-publish safety net Any draft sitting unpublished for 5 days automatically flips to published. No email is sent. that's still manual. Keeps the queue from rotting if you go on vacation.

Fix a published statement

Click Amend on the published row. Creates a new draft based on the original; the old one becomes "superseded" but stays in history.

↑ Back to top

Ask Marley (AI Assistant)

Marley is your AI assistant. She knows your entire portfolio. every property, tenant, lease, payment, ticket. and can answer questions in plain English. She can also DO things: update records, draft listings, send messages.

Things you can ask Marley

  • "Who's behind on rent this month?"
  • "What's the average rent on my Fort Worth properties?"
  • "How many maintenance tickets did we close last quarter?"
  • "Which lease expires next?"
  • "Draft a listing for 401 Dale Ln"
  • "Update Lloyd Watkins's phone number to (817) 555-0123"
  • "What's the cheapest property we have right now?"

Multi-chat sidebar

The left sidebar in Ask Marley keeps all your past conversations. Click any to resume. Click + New chat to start fresh on a different topic. Chats are auto-titled by Marley after the first few messages.

What Marley can write

Marley has write tools for: tenants, properties, leases, vendors, maintenance tickets, payments, and statements. She'll always confirm before making a change. If you ask her to do something risky, she'll explain what she's about to do and wait for your "yes."

↑ Back to top

Team Board

Shared task list for your whole team. Think of it as a sticky-note board everyone can see. If your mom mentions it to your dad, write it down here so it doesn't get lost.

Add a task

  1. Team Board → + Add Task
  2. Title (what needs to happen), notes (extra context), assignee, priority, due date
  3. Optionally link it to a property, tenant, or vendor. picking a property auto-fills the tenant list so you can find the right one fast
  4. Save

The three sections

  • In Progress. actively being worked on
  • To Do. queued up
  • Done. strikethrough, faded. Auto-archives after 7 days.

One-click status

Every card has a button on the right: Start moves it to In Progress, Mark done moves it to Done. Reopen brings a done task back. No drag-and-drop needed.

Email notifications

When you assign a task to a teammate, they get an email immediately with the task title, your notes, the priority, and a link to open the Team Board. They never miss what you put on their plate.

Filters

Top of the page: Everyone / My tasks / Unassigned, plus priority filter (Any / High only / Medium+), plus search.

↑ Back to top

Vendors

Vendors are the plumbers, electricians, handymen, and contractors you call. Each vendor gets one record with their company, contact person, specialty, license, and insurance info.

Add a vendor

  1. Vendors → + Add Vendor
  2. Company name (e.g. "On Time Services") + Contact person ("Jamie Hagwood")
  3. Specialty (Plumbing, Electrical, HVAC, etc.)
  4. Email + phone
  5. Optional: license number, "Preferred vendor" checkbox (shows them first in assignment dropdowns), insurance verified, notes
  6. Save

How vendors interact with KeyTurn

Vendors do NOT get a KeyTurn login. Instead, when you assign one to a maintenance ticket, they get an emailed magic link. They tap it on their phone, see only that one job, can update status and upload photos. no password, no account to manage. See the Maintenance section for the full flow.

↑ Back to top

Vacancies

Track open units and what you want to charge. Marley can also draft listing copy for you to paste into Zillow, Facebook Marketplace, etc.

Add a vacancy

  1. Vacancies → + Add a Vacancy
  2. Pick property, set headline, monthly rent, available date
  3. Add description (or ask Marley to draft one)
  4. Save

Vacancies don't automatically post to Zillow or Facebook. those require their own logins. KeyTurn helps you keep track of what's open and prep the copy.

↑ Back to top

Settings & Team Management

Bank Accounts (primary only)

Add and manage your operating + trust accounts. Required for properties to be properly linked. Only the org primary (owner) can add or modify bank accounts. admins and members can see them where assigned but can't change them.

Online Payments (primary only)

Connect your Stripe account here so tenants can pay rent online. Money flows directly to your bank. KeyTurn never holds tenant funds. Only the primary can set this up or change the connection.

Google Drive

Connect Google Drive so leases, notices, and receipts live in your own Drive. Disconnecting removes KeyTurn's access but never deletes your files.

Team Management

Invite teammates to your org. Roles:

  • Primary (Owner). full access including billing. Can invite, kick, change roles. Two primaries per org is fine for redundancy.
  • Admin. full day-to-day access. Can manage everything except billing, team membership, and bank accounts.
  • Member. day-to-day work access. Can manage properties, tenants, maintenance, but no billing or team access.
  • Viewer. read-only.
Why only the Primary can invite teammates Each new user can affect your subscription cost. Team composition should be the owner's call, not delegated. If an admin needs a new teammate, they ask you.

Two-factor authentication (2FA)

Highly recommended for the primary and any admins. Settings → Two-Factor Authentication → scan the QR code with Google Authenticator / Authy. From then on, login requires your password + a 6-digit code from the app.

↑ Back to top

Troubleshooting

Online Payments says "Error"

Usually happens after switching to live Stripe keys from test mode. Click the 🔄 Reset connection button that appears, then click Set up payments to start fresh.

Tenant didn't get their portal invite

Check three things:

  1. Tenant has an email address on file (Tenants → their row → Edit)
  2. Email isn't in their spam folder
  3. Re-send by clicking Send Portal Invite on their row

Vendor didn't get the job link

Open the maintenance ticket → Manage → click 📨 Resend job link to vendor. Rotates the link and re-fires the email.

Draft statement shows wrong rent amount

The statement pulls from rent_payments. If the payment isn't logged yet (tenant paid late), the draft will be low. Either log the missing payment in Money first, OR regenerate the statement once the payment lands.

Document upload to Drive fails

Google Drive token expired. Settings → Document Storage → Disconnect → Reconnect. Re-grant permissions when prompted.

Can't see "Invite Teammate" button

By design. Only the org Primary can invite. If you need to add someone, ask the Primary.

Still stuck?

Use Send Feedback in the sidebar (bottom-left) to report a bug or ask a question. Goes straight to the founder.

↑ Back to top