Overview
This guide is CRM-agnostic: every Propera step is identical whether you use Podio, GoHighLevel, REsimpli, or any other CRM that connects to Zapier. Only the trigger and the write-back are specific to your CRM.
What you'll build
A single Zap with three parts:
- Trigger — fires when a lead in your CRM is ready to underwrite.
- Run ARV Analysis — Propera returns the ARV, comparables, a summary, and Zillow links.
- Update the lead — those results are written back onto the lead in your CRM.
Before you start
- A Propera account on the Pro or Business plan (API access is included on these tiers).
- A Propera API key (Step 1 below).
- A paid Zapier plan. This Zap has more than two steps, and multi-step Zaps require at least Zapier's Starter plan. See Zapier pricing.
- Your CRM connected to Zapier.
- An invite to the Propera Zapier app (Propera shares the link).
Step 1 — Generate your Propera API key
- In Propera, go to Account Settings → API Keys.
- Click Generate API Key and give it a name (for example,
Zapier). - Copy the key now — it is shown only once. Treat it like a password; you can revoke and regenerate it anytime.
Step 2 — Add the Propera app to Zapier
Open the Propera private-app invite link and accept it. This adds the Propera app to your Zapier account so you can use its actions in a Zap.
Step 3 — Trigger: when a lead is ready
Create a new Zap and choose a trigger from your CRM. Use a deliberate "ready" signal so the analysis never runs before the lead is fully filled in:
- A status field set to a value like
Run ARV, or - A button on the lead, or
- A new or updated lead paired with a Filter that requires the key fields to be present.
Step 4 — Action: Run ARV Analysis
Add an action step and choose Propera → Run ARV Analysis. The first time, connect your Propera account by pasting the API key from Step 1. Then map your CRM fields to the Propera inputs:
| Propera input | Map from your CRM | Required |
|---|---|---|
| Property Address | The lead's full address (street, city, state, ZIP) | Always |
| Property Type | One of sfh, condo, townhouse, manufactured, land (capitalization does not matter) | Always |
| Bedrooms | Number of bedrooms | Residential |
| Bathrooms | Number of bathrooms | Residential |
| Square Footage | Living area for residential, or lot size for land | Always |
| Year Built | Year the property was built | Residential |
| Comp Radius (miles) | Search radius. Residential up to 15, land up to 50 | Always |
| Lot Size Unit | sqft or acres (capitalization does not matter) | Land only |
Step 5 — Write the result back to the lead
Add a final action and choose your CRM → Update the lead/record. Map the Propera outputs onto your lead's fields:
| Propera output | Suggested CRM field | On success | On failure |
|---|---|---|---|
arv | ARV (number) | The ARV | blank |
summary_text | ARV Summary (text) | The summary line | blank |
error_message | Error / Notes (text) | blank | The reason it failed |
status_label | Status | Done | Error |
run_url | Propera Run Link (URL) | Link to the saved run | blank |
arv_confidence | Confidence (text) | high / medium / low | blank |
comp_count | Comp Count (number) | Number of comps used | blank |
price_per_sqft | Price / sqft (number) | Average price per sqft | blank |
Subject zillow_url | Zillow link (URL) | Zillow page for the subject | blank |
comps_text | Comps (one large text field) | Every comp as its own paragraph (address, price, sqft, beds/baths, price per sqft, distance, sold date, verification status, condition, Zillow link), separated by a blank line | blank |
comps (list) | Optional comp details | Each comp as structured fields: address, price, sqft, beds, baths, price per sqft, distance, sold date, Zillow link | blank |
status_label = Error. A single Update step therefore covers both outcomes, no extra branches or paths needed. Map status_label to the same status field your trigger watches, and after a run it becomes Done or Error, which also stops the Zap re-firing on later edits.Step 6 — Turn it on, and re-running
Turn the Zap On. To re-run a lead after editing it, set the trigger/status field back to Run ARV (or re-trigger however your CRM fires the Zap).
Troubleshooting
When a run fails, the reason is written to your Error / Notes field and status_label is set to Error.
| Error / symptom | What it means | Fix |
|---|---|---|
| Mentions "comparable sales" or "closely match this property" | The radius did not find enough usable comps | Widen Comp Radius and re-run (residential up to 15 mi, land up to 50 mi) |
| "We couldn't locate this address" | The address could not be matched | Make sure it includes a street number; for rural roads/highways try an alternate name |
| "API access is available on the Pro and Business plans" | Your Propera plan does not include API access | Upgrade to Pro or Business |
| "Invalid or missing API key" | The connected key is wrong or was revoked | Reconnect your Propera account in Zapier with a valid key |
Questions people ask
Which Propera plans include API access?
Pro and Business. The Zap connects with an API key generated from your account, and a Starter plan key will be rejected with a 403. If you connect a Zap on Starter it will fail on every run rather than partially work, so check the plan before you build the flow.
Does this count against my monthly ARV limit?
Yes. Every lead the Zap underwrites uses one AI ARV from your plan's monthly allowance, the same as a run you start by hand. If the allowance is exhausted the API returns a 402 and the Zap step fails until the limit resets on your next billing cycle, so a high-volume lead source can drain the allowance faster than expected.
Which CRMs does this work with?
Any CRM that Zapier connects to, which is most of them. Propera is the action step rather than the integration target, so the trigger can be a new row, a new lead, a form submission or a tag change in whatever tool you already use. If your CRM is not on Zapier but can send a webhook, use the direct webhook guide instead.
How do I stop it running on every single lead?
Put a Zapier filter step between the trigger and the Propera action. Common filters are a minimum lead score, a specific tag, or requiring the address field to be non-empty. Filtering matters more here than in a typical Zap because each run consumes an ARV from your monthly allowance.
What happens when the address cannot be matched?
The API returns a 422 with a message rather than a partial result, and the Zap step fails cleanly instead of writing a wrong number to the lead. The most common cause is a missing street number, and rural routes and highways sometimes need an alternate spelling.
Ready to auto-underwrite your pipeline?
Generate your API key and connect your CRM in minutes.
Get Started