Connect Your CRM to Propera with Make.com

Auto-underwrite every new CRM lead on Make's visual builder. Make connects to virtually any CRM, and its free tier covers multi-step scenarios and routers, so the success/failure branch costs nothing.

Loom walkthrough goes here (embed coming soon).

Overview

Make (formerly Integromat) calls Propera's HTTP API with its built-in HTTP module, so there's no app to install on Propera's side. A free Make account supports multi-step scenarios and routers, so you can branch on success vs. failure without paying.

What you'll build

One scenario: CRM trigger → HTTP "Make a request" (Propera) → Router → CRM update (one route for success, one for failure).

Before you start

  • A Propera account on the Pro or Business plan, and a Propera API key (Step 1).
  • A Make account (the free tier works for moderate volume).
  • Your CRM connected to Make.

Step 1 — Generate your Propera API key

In Propera, go to Account Settings → API Keys, click Generate API Key, name it (for example Make), and copy it. It's shown only once.

Screenshot: the API Keys card in Account Settings.

Step 2 — Add a trigger from your CRM

Start a new scenario and add your CRM as the first module (watch new/updated records), or a "Custom webhook" the CRM posts to. Use a deliberate "ready" signal (a status field set to Run ARV, or a filter that requires the key fields) so it doesn't run on half-entered leads.

Step 3 — Add the HTTP "Make a request" module

  • URL: https://getpropera.com/api/v1/arv
  • Method: POST
  • Headers: X-API-Key = your key, and Content-Type = application/json
  • Body type: Raw, content type JSON, with the lead's fields mapped in:
{
  "address": "{{ lead address }}",
  "property_type": "sfh",
  "bedrooms": {{ beds }},
  "bathrooms": {{ baths }},
  "sqft": {{ sqft }},
  "year_built": {{ year }},
  "comp_radius": 5
}

Turn on Parse response so Propera's JSON fields become mappable in later modules.

(See Make's help docs for the HTTP module.)

Step 4 — Route the result back to your CRM

Add a Router after the HTTP module:

  • Route A (filter success = true): your CRM "Update a record", mapping arv, summary_text, and run_url.
  • Route B (filter success = false): your CRM "Update a record", writing error into a notes/error field.
Routers are included on Make's free tier, so this success/failure split costs nothing, unlike Zapier's Paths.

Request fields

FieldValueRequired
addressThe lead's full address (street, city, state, ZIP). Any format works: Propera resolves it to a standard street, city, state and ZIP before running, and rejects it with ADDRESS_NOT_FOUND if it cannot.Always
property_typesfh, condo, townhouse, manufactured, or land (case-insensitive)Always
bedroomsNumber of bedroomsResidential
bathroomsNumber of bathroomsResidential
sqftLiving area for residential, or lot size for landAlways
year_builtYear the property was builtResidential
comp_radiusSearch radius in miles (residential up to 15, land up to 50)Always
lot_size_unitsqft or acresLand only
soft_errorstrue to receive every failure as HTTP 200 with success: false (the real status is returned in http_status). Use it when your automation tool stops the flow on a non-200 responseOptional

Response fields

FieldDescription
successtrue on success, false on failure (branch on this)
arvThe estimated ARV
arv_confidencehigh, medium, or low
summary_textOne-line summary for a notes field
comp_countNumber of comparables used
comps_radius_milesThe search radius used, in miles
price_per_sqftAverage price per square foot
run_urlLink to view the full run in Propera
normalized_addressThe address as Propera resolved it (street, city, state, ZIP). Write it back to the lead if you want the corrected version.
compsArray of comps (address, price, sqft, beds, baths, price_per_sqft, distance_mi, sold_date, verification, condition, zillow_url)
comps_textReady-to-paste plain-text list of every comp (one per paragraph, with Zillow links) for a single text field
arv_sourceverified when the comps were checked against public listing records, otherwise fast
errorOn failure, a human-readable reason
error_codeOn failure, a machine-readable code (see Troubleshooting)

Troubleshooting

error_codeWhat it meansFix
INSUFFICIENT_COMPSNot enough comps at that radiusWiden comp_radius (residential up to 15 mi, land up to 50 mi)
NO_USABLE_COMPSComps were found but none passed the filtersWiden comp_radius (residential up to 15 mi, land up to 50 mi)
ADDRESS_NOT_FOUNDPropera could not resolve the address it received. The error message names that addressFix the street number, city, state or ZIP on the record and rerun; for rural roads try an alternate name
PLAN_NOT_ELIGIBLEYour plan doesn't include API accessUpgrade to Pro or Business
UNAUTHORIZEDThe API key is missing, wrong, or revokedCheck the X-API-Key header

Questions people ask

Which Propera plans include API access?

Pro and Business. The scenario authenticates with an API key from your account, and a Starter key returns a 403 on every call. Confirm the plan before building the scenario rather than after.

Does Make's free tier cover this?

For most lead volumes, yes. A single underwriting call is one HTTP module operation plus whatever your trigger and write-back steps use, so the operation count per lead is small. The binding constraint is usually your Propera monthly ARV allowance rather than Make's operations.

Does each scenario run use one of my monthly ARVs?

Yes. Every completed analysis draws one AI ARV from your plan's monthly allowance. When the allowance is exhausted the API returns 402 and the module errors until the limit resets on your next billing cycle.

How do I avoid underwriting leads that are not ready?

Add a Make filter before the HTTP module. Requiring a non-empty address is the minimum useful filter; a lead-status or tag condition is better. Each run costs an ARV, so filtering is about your allowance rather than only about tidiness.

What does the scenario do when an address fails to match?

The API returns a 422 with a message and no estimate, so the module errors rather than writing an empty or wrong value into your record. Missing street numbers are the usual cause.

Ready to auto-underwrite your pipeline?

Generate your API key and connect your CRM in minutes.

Get Started