Contacts CRM
How-to guides from the Revamp365 Help Center.
What the Contacts CRM Is
The Contacts CRM is where every lead, seller, buyer, and partner lives in Revamp365. It's the system of record that ties a person to their property, your outreach history, and the deal they may become. Open it from Contacts CRM in the left sidebar (available on paid plans).
What a contact holds
Each contact is a person plus everything you know about them:
- Identity — name, phone numbers, email, and a linked property address
- Tags — free-form labels you attach to group people any way you like
- Lists — a separate grouping field (shown as the "Lists" column) for segmenting campaigns and pulls
- Lead fields — Lead Status, Lead Temperature, Lead Source, Lead Manager, and a Lead Score
- Counties and optional custom fields you define for your own pipeline
What you can do here
| You want to... |
Where it happens |
| Add or import people |
Import wizard (CSV) and single-add |
| Group and find them |
Tags, Lists, advanced filters, saved views |
| Stay on top of follow-up |
Tasks and the activity timeline |
| Track history |
Per-contact timeline of calls, texts, notes, and field changes |
| Clean your database |
Duplicate detection and merge |
Open any contact to see its detail page: a timeline, tasks, notes, linked properties, linked people, and any connected deals — plus a built-in dialer and texting so outreach is logged automatically.
How tags, lists, and views differ
These overlap, so it helps to keep them straight:
- Tags are sticky labels on a person (for example, "absentee" or "called-back").
- Lists segment contacts for campaigns and exports.
- Saved views are filter presets in the left rail — Team views are shared, Private views are yours. They don't move contacts; they just change what you see.
Bulk actions let you update tags, lead fields, lists, or enroll many contacts into a workflow at once.
How it fits your workflow
The CRM sits between sourcing and closing. You push property pulls into it, work leads with calls, texts, and tasks, then promote the serious ones into the deal pipeline.
- Send leads in from a search: Push a property list into Contacts CRM
- Move a hot lead forward: What the deal pipeline is
Where to go next
- Adding and importing contacts
- Use tags, saved views, filters, and lists
- Set lead status and temperature
- Create and complete follow-up tasks
- Use the contact timeline
Start by getting people in, then layer on tags and tasks so nothing slips.
Adding and Importing Contacts
Your Contacts CRM is the home for every lead, buyer, and seller you work. Revamp365 gives you four ways to get people into it, from typing one record to capturing web-form leads automatically.
Where contacts live
Open Contacts CRM from the left navigation (/contacts-crm). The header holds the two manual entry points: + Add Contact and Upload Contacts. The other two methods feed contacts in from elsewhere in the app. New to the workspace? Start with navigating the dashboard.
The four ways to add contacts
| Method |
Best for |
Where it starts |
| Manual entry |
One person you just spoke with |
+ Add Contact button |
| CSV import |
A list you exported from another tool |
Upload Contacts button |
| Property lists |
Skip-traced owners and buyers |
Skip Tracing results |
| Inbound leads |
Web-form and connected-CRM leads |
Automatic |
Add a contact manually
Click + Add Contact to open the contact dialog. Enter the first name, last name, email, and phone, set tags or a lead source if you like, then save. The contact appears in your list immediately.
Import a CSV
Click Upload Contacts to launch the import wizard, which walks through five steps: Upload, Map Fields, Settings, Processing, and Results. On the Settings step you choose how the file is applied:
- Create and update — add new contacts and update any that already match.
- Update only — change existing contacts, skip new rows.
- Create only — add new contacts and leave matches untouched.
Matching is done on email and phone, so re-importing an updated list won't pile up duplicates. For column mapping detail, see import contacts from CSV and map columns, and preview a file safely first with dry-run a CSV import before committing.
Push from a property list
When you skip-trace a saved property or buyer list, the results screen shows an Add to Contacts button with the count of successful matches. Click it to send those owners or buyers straight into your CRM with their phone and address attached. Walk through it in push a property list into Contacts CRM.
Capture inbound leads automatically
Leads from your hosted opt-in pages and connected CRMs (such as Podio) create contacts on their own. Each one lands in your list and logs an auto-created entry on the contact timeline, so you can see exactly when and how it arrived. No manual step is needed.
After they're in
However a contact arrives, you work it the same way. Set a lead status and temperature, organize records with tags, saved views, filters, and lists, and clean up overlaps with find and merge duplicate contacts.
Import Contacts from CSV and Map Columns Correctly
Bringing your existing contacts into Revamp365 takes a few minutes with the import wizard. You upload a CSV, tell Revamp365 which column maps to which field, decide how existing records are handled, and watch the results as the import runs. Nothing in your CRM changes until you click Start Import, so you can upload a file, check the preview, and back out with zero risk.
Open the import wizard
Go to Contacts CRM and click Upload Contacts in the top-right corner, next to + Add Contact. The wizard opens on Step 1 of 5: Upload and moves through Upload, Map Fields, Settings, Processing, and Results. Every step before Start Import is a dry run — you can close the wizard and return to a pending import at any time.
Want the bird's-eye view of all four ways to get people into your CRM first? See adding and importing contacts.
What files the importer accepts
The wizard reads a comma-delimited CSV or TXT file up to 100 MB. A few rules keep an upload from bouncing:
- The first row must be a header row — column names like
First Name, Email, and Phone — so the wizard knows what each column holds.
- Columns must be comma-separated. Files that use semicolons, tabs, or pipes are rejected, but the AI cleanup can convert them for you.
- The file must be plain, unencrypted text. Password-protected or corrupt exports cannot be read.
If you do not have a file ready, click Download Template to get a sample CSV with every supported column already in the header row. Excel, Numbers, and Google Sheets can all export to CSV — an .xlsx workbook has to be saved as CSV first.
Drag your file onto the drop zone or click Choose file, then click Upload File. Revamp365 reads your header row and the first few rows so it can suggest a mapping for each column.
Map your columns
On the Map Fields step, every column from your file gets its own row with a few sample values and a Map to dropdown. Columns Revamp365 recognizes are tagged Auto matched — always double-check them, because a wrong guess writes data to the wrong field.
Targets are grouped so they are easy to find:
- Contact Info — email, phone, full name (or separate first and last name), plus Additional Emails and Additional Phones for people who have more than one.
- Address – Mailing and Address – Property — map one full-address column to have it parsed into street, city, state, and ZIP, or map the parts individually. Mailing is where the owner receives mail; Property is the subject property.
- Lead Management — lead status, temperature, source, objective (deal strategy), next steps, and lead manager (matched to a teammate by their email).
- Organization — company, external ID, and email type.
- Tags and Categories — tags, lists, automation lists, counties, ZIP codes, and more; these accept several comma-separated values in a single cell.
- Custom Fields — any custom fields you have created appear here.
- Notes — writes the cell into a contact note instead of a plain field.
Set any column you do not want to import to Skip. You must map at least an email or a phone column before you can continue, and no two columns can point at the same field. A Live preview of the first few rows updates as you map, so you can confirm the data lands where you expect. For a deeper look at reading that preview, see preview and validate a CSV import before committing.
Choose how duplicates are handled
On the Settings step, pick an import mode:
- Create and update — add new contacts and update any that already match.
- Update only — only update existing matches, and skip everything else.
- Create only — add new contacts and skip rows that already match.
Then choose which fields decide a match — Email, Phone, or External ID. Matching on email and phone is what keeps a re-imported list from piling up duplicates: the same person updates in place instead of doubling. If you pick any mode other than Create only, you must select at least one dedup field before the import can start.
Apply defaults to the whole file
Still on Settings, you can stamp every row in the file with the same values:
- Default tags and Default lists — comma-separated; handy for marking the whole batch as one campaign, source, or list.
- Default objective — the deal strategy applied to each imported contact (AI may refine it later).
- Default next steps — a tactical plan written onto each contact and marked as manually edited.
If you also mapped a column to Objective or Next Steps, that column wins and the matching default is ignored, so you never end up with conflicting values.
Start the import and read the results
Click Start Import. This is the only step that writes to your CRM. The Processing screen shows live progress with running counts of created, updated, skipped, and errors, refreshing every couple of seconds. Large files run in the background, so you can close the wizard and keep working — when it finishes you get a notification in the bell menu and an email, and reopening the wizard drops you back on the results.
When it finishes you get a summary. If any rows had problems, click Download Error Report for a CSV listing the row number, the error message, and the original data, so you can fix and re-import just those rows. Click View Imported Contacts to see them in your list.
If progress sits at zero for more than a few seconds, the background queue worker may not be running — ask your admin to start it.
Clean up a messy file with AI
If your export has odd delimiters, merged columns, junk rows, or inconsistent casing, click Messy file? Let AI clean it up for you on the upload step. Drop the file, tell it in plain English what to fix — "dedupe by name", "strip the +4 off the ZIP", "merge the two phone columns" — and tick the box to confirm you understand the file is processed by our AI provider.
The cleanup shows a before / after preview so you can see exactly what changed, along with the estimated AI usage cost for that run before you commit to it. Only a small sample of rows is ever shown to the model to infer the cleanup plan; that plan is then applied to every row. Keep refining with more instructions until it looks right, then choose Use this cleaned file to drop straight into the mapping step.
AI cleanup handles files up to 100 MB and 20,000 rows. Rows it cannot safely place — duplicates or rows with no contact info — are set aside, and you can download them for review after cleaning.
Fix a rejected file automatically
If a normal upload is rejected for a fixable reason — a missing header row or the wrong delimiter — the error card offers Fix this file with AI. It detects the problem, prepares a corrected CSV, and shows you a preview with a short note on what it changed. Review it, then choose Use repaired file to load the corrected version, or Keep original to back out. This is the quickest path when a file is "almost right" and you would rather not re-export it from scratch.
Preview safely before anything is written
Uploading never touches your contacts. The Upload, Map Fields, and Settings steps are a full dry run — the import is created with a pending status and writes zero contacts until you click Start Import. To validate a file and walk away, upload it, inspect the preview, then find it under Recent imports on Step 1 and click the trash icon; any still-pending import deletes along with its stored file. Stale pending uploads are cleaned up automatically after a day. The complete walkthrough is in preview and validate a CSV import before committing.
Troubleshooting uploads
Most upload problems come with a plain-English message and a suggested fix right in the wizard. Here is what the common ones mean and how to clear them:
| Message or symptom |
What it means |
How to fix |
| This file is larger than the 100 MB limit |
The file is over the import size cap |
Split it into smaller CSVs or remove unused columns, then re-export |
| This does not look like a CSV or TXT file |
The file is not a .csv or .txt (often an .xlsx) |
Open it in Excel, Numbers, or Google Sheets and export as CSV |
| The file did not finish uploading |
The server rejected it before reading — usually a server upload limit or a dropped connection |
Confirm it is under 100 MB, close it if it is open elsewhere, and retry on a stable network |
| The file is missing a header row |
The first row is data, not column names |
Add a header row, or start from the downloaded template |
| This file uses a different separator |
The file is semicolon-, tab-, or pipe-delimited |
Re-export as comma-delimited, or use the AI repair option to convert it |
| The uploaded file could not be read |
The file is encrypted, password-protected, or corrupt |
Export a fresh, unprotected CSV and upload again |
| Too many upload attempts |
Several files were uploaded in quick succession |
Wait about a minute, then try again |
| The upload could not reach the server |
Your connection dropped mid-upload |
Check your connection and retry, ideally on a stable network |
| Processing stays at 0% |
The background queue worker is not running |
Ask your admin to start the import worker |
Frequently asked questions
Does uploading a file change my contacts right away? No. Nothing is created or updated until you click Start Import — every step before that is a preview.
Will re-importing an updated list create duplicates? Not if you keep a dedup field (email or phone) selected. Matching rows update in place instead of creating a second record.
Can I undo an import? There is no one-click undo. Before starting, you can delete a pending import from Recent imports. After an import runs, correct the data and re-import, or clean up overlaps with find and merge duplicate contacts.
Can I upload an Excel workbook? Not directly — save the sheet as a CSV first, then upload the .csv.
How do I import someone with more than one phone or email? Map the extra columns to Additional Phones or Additional Emails; each holds several values per contact.
Can I map one column that holds a whole address? Yes. Map it to Full Mailing Address or Full Property Address and the wizard splits it into street, city, state, and ZIP.
What is the difference between mailing and property address? Mailing is where the owner receives mail; property is the subject property you are working. Map whichever your file has — or both.
How large a file can I import? Up to 100 MB through the standard importer. AI cleanup also handles up to 100 MB and 20,000 rows.
Can I tag or list everyone in the file at once? Yes — use Default tags and Default lists on the Settings step.
Some rows failed — how do I fix just those? Download the Error Report, correct the flagged rows using the row number and error message, and re-import that smaller file.
Is my file sent to an AI? Only if you choose AI cleanup or AI repair, and only a small sample of rows is shown to the model. You confirm consent before it runs.
Once your contacts are in, set a lead status and temperature, organize them with tags, saved views, filters, and lists, and clear overlaps with find and merge duplicate contacts.
Find and Merge Duplicate Contacts
Duplicate contacts pile up from imports, inbound leads, skip tracing, and form submissions. Revamp365's De-Dupe tool scans your CRM, groups likely duplicates, and merges them while preserving notes, tasks, and history.
Open the De-Dupe tool
In Contacts CRM, click De-Dupe in the toolbar. A red badge on the button shows how many duplicate groups are waiting. The tool opens with a list of clusters and a side panel where you can filter by confidence and re-scan.
How duplicates are detected
Revamp365 matches contacts three ways:
- Shared phone number — high confidence
- Shared email address — high confidence
- Same name and mailing address — medium confidence, and nickname-aware (it knows "Bob" and "Robert" are the same person)
Matching records are grouped into one cluster, so a person who appears three times is resolved once. If a high-confidence group contains two different last names, Revamp365 flags a name mismatch so you can check whether they are really the same person.
Review a group and pick the survivor
Open a cluster to see the records side by side. Revamp365 marks one record Recommended as the surviving "primary," based on how complete it is and how much history it carries — but you can choose a different one. Watch for the warnings it surfaces:
- Name mismatch — shared phone or email but different names
- Affects synced records — one record is linked to an external CRM
- Oversized group — more than 10 records, so automatic merging is disabled and you review it manually
Choose what survives
With automatic merging, Revamp365 keeps the best value for each field: the most complete name, a validated email and phone when available, the most advanced lead status, the hottest lead temperature, and the combined set of all tags, lists, and extra phones and emails. Notes, tasks, and activity history from every record are always kept and moved to the survivor. Properties and custom fields are combined with duplicates removed. You can also open the field-by-field view to decide each value yourself.
Merge and undo
When you merge, the duplicate records are deleted and all of their related records re-point to the survivor. A message appears with a one-time Undo — use it right away if the merge was wrong. Undo restores the deleted contact records, but it does not unwind the moved notes and activities, so treat a merge as close to permanent.
To clear a large backlog quickly, use Auto-Merge All (High). After you confirm, it merges every pending high-confidence group in the background.
Good to know
- Merged contacts are permanently deleted, not archived.
- Skip a group to dismiss it; you can bring dismissed groups back from the filter panel.
- Scan results older than 24 hours are marked stale — re-scan after a big import.
Most duplicates trace back to imports, so map your columns carefully when you import contacts from CSV.
Preview and Validate a Contact CSV Import Before Committing
Uploading a CSV in Revamp365 does not touch your contacts. The upload step only stores the file and builds a preview, so the Upload, Map Fields, and Settings steps act as a full dry run — nothing is created or updated until you click Start Import.
Open the import wizard
- Go to the Contacts page.
- Click Upload Contacts (top of the list, next to + Add Contact).
- Drag a file onto the dropzone or click Choose file. Comma-delimited
.csv or .txt up to 100 MB are accepted.
- Click Upload File.
The wizard runs through five steps: Upload, Map Fields, Settings, Processing, Results. The import is created with status pending and writes zero contacts at this point.
Read the mapping preview and row count
Step 2 (Map Fields) shows what was parsed:
- The header reads
<filename> — <N> rows detected, so you can confirm the row count before committing.
- Columns Revamp365 recognizes (email, phone, name, mailing/property address, tags, custom fields, and more) get an Auto matched badge. Each row shows up to three Sample values from your file.
- The Live preview table renders the first three rows exactly as they will land, using your chosen CRM field labels.
You must map at least an email or phone column, and you cannot point two columns at the same field, or Continue stays disabled. Special targets parse on the fly: Full Mailing Address / Full Property Address split into street, city, state, and zip; Notes becomes a contact note; Lead Manager Email resolves to a teammate by email.
Choose settings (still no writes)
Step 3 (Settings) controls matching:
| Setting |
Options |
Effect |
| Import mode |
Create and update / Update only / Create only |
Whether unmatched rows create contacts, matched rows update, or matches are skipped |
| Dedup fields |
Email, Phone, External ID |
Which fields identify an existing contact |
| Default tags / lists |
Comma-separated |
Applied to every imported row |
If mode is anything other than Create only, pick at least one dedup field or Start Import is blocked. Rows with no email and no phone cannot create a contact and are skipped.
Commit, then check results
Clicking Start Import queues a background job — the only step that writes data. The Processing screen polls every two seconds and shows a live tally: processed, created, updated, skipped, and errors. You can close the wizard and return; it resumes where it left off.
On Results, if any rows failed, click Download Error Report for a CSV with row_number, error_message, and the original row data (invalid email, bad lead temperature, missing identity, and similar). Fix those rows and re-upload.
Discard a preview without polluting the CRM
To validate and walk away cleanly: upload, inspect the preview, then on Step 1 find the file under Recent imports and click the trash icon. Any import still pending (or cancelled/failed) deletes along with its stored file and writes nothing. Stale pending uploads are auto-purged after a day.
If the file is too messy to map, use Fix this file with AI on a rejected upload, or clean it before importing. For combining matched records afterward, see find and merge duplicate contacts.
Skip-Trace a Single Contact
When you only need contact details for one owner, run a single skip trace from the Owner Information dialog instead of tracing a whole list. Revamp365 appends phone numbers and emails for that owner and lets you save them straight into your Contacts CRM.
Open the Owner Information dialog
Single skip traces run from the Owner Information dialog, which opens when you click an owner from Buyer Search, a property's ownership card, or a linked owner inside a contact record. The dialog header reads Owner Information and shows the owner name, mailing address, and owned properties.
The address fields drive the trace, so the dialog needs a Mailing Address, Mailing City, and Mailing State before it can run. Mailing ZIP is optional. If any of those three are missing, the trace stops and a toast tells you exactly which field is blank.
Run the skip trace
If no contact data exists yet, click the Skip Trace button (it reads Skip Trace Now in the blue "Want contact details?" panel). The button changes to Skip Tracing... while it works.
Revamp365 checks its shared community cache first. If another user already traced that exact mailing address, the result returns from cache and you are not charged. Only a fresh vendor lookup is billable.
| Data source |
What it means |
Billable |
community / cache |
Found in the shared cache |
No |
api |
Fresh vendor lookup |
Yes, on success |
Skip tracing costs $0.15 per successful record. On the Free plan that amount is debited from your prepaid credits, and the trace is blocked up front if your balance is too low or spending is paused. Paid plans run the trace and meter usage afterward. A trace that returns no contact information is not charged.
Re-run for fresh data
After a trace completes, the Skip Trace button is replaced by a Re-Skip Trace icon (the circular arrows) in the contact-details header. Re-running forces a new vendor lookup that bypasses the cache, so it bills again on success. Use it only when you believe newer numbers exist.
Save the owner into Contacts
The trace populates a Skip Traced Contact Information section with the owner's phones and emails. To push it into your CRM, click Add all to Contacts (the people-plus icon). Revamp365 creates or updates the contact and attaches the owner's mailing address and tags. You must skip trace first — clicking save with no results shows "Please skip trace first to get contact information."
Need to add a number the trace missed? Use Add New Contact (the user-plus icon) to enter a name, phone, and email by hand. Phone numbers are labeled Mobile or Landline.
Deep Trace for LLC-owned properties
When the owner is a company or LLC, a purple Deep Trace (sparkles) button appears next to skip trace. Deep Trace runs an AI investigation to identify the human principal behind the entity before returning their contact details. It is a heavier, separate operation billed at $1.00 per record on the Free plan, so reach for it only when a plain skip trace returns an unhelpful company name.
Good to know
- Each phone and email can be marked verified or bad so the next person who traces that address inherits your validation.
- Results persist on the address, so reopening the same owner later shows the contact details without re-charging.
- After saving, open the contact to set status and tags — see read skip-trace results and choose the best phone number.
Use Tags, Saved Views, Filters, and Lists to Organize Contacts
Tags, lists, filters, and saved views are four separate tools in your Contacts CRM that work together to turn a long contact list into focused, reusable segments. Here is what each one does and how to combine them.
Tags vs. Lists
Both label a contact, but they behave differently:
| Tool |
Where you set it |
Best for |
| Tags |
Tags field on the Add/Edit contact form |
Flexible labels like "Hot Buyer", "Cash", "DNC" |
| Lists |
Lists field on the contact (stored as deal type) |
Grouping contacts into named lists you reuse |
Open any contact, use the Tags combobox to type a new tag or pick existing ones, and use the Lists field the same way. Both accept custom values, so you are never locked to a preset menu.
Filter your contacts
From /contacts-crm, click Filter in the toolbar to open the Contact Filters panel. The left rail groups every filter into categories, each showing a badge count when active:
- Lead Info — lead status, temperature, source, manager, property address, missed calls
- Buyer Filters — county and zip code
- Contact Details — email, phone, contact type, validation status
- Dates — created, last updated, last communicated, last outreach
- Engagement — lead score, total outreach, SMS count, objective, next steps
- Tags, Lists, Workflows, and Custom Fields
In the Tags category, each row has an operator and combines with the next row using an And / Or selector:
- is — has all selected tags
- is not — exclude contacts with all selected tags
- is any of — at least one tag matches
- is none of — exclude if any tag matches
- has any tags / has no tags — segment tagged vs. untagged contacts (no tag values needed)
Click Apply Filters to update the table.
Save a view to reuse a segment
Once filters are applied, save them so you never rebuild them:
- In the filter panel footer, click Save as New (or Update "[name]" to overwrite the active view).
- Name it, for example "Philly Buyers".
- Toggle Team View (shared with team) on to share it, or leave it off to keep it private.
- Click Save View.
Saved views store your filters, visible columns, sort order, and per-page count together. They appear in the left sidebar under the Team and Private tabs, each with a live record count. Drag the grip handle to reorder, click a view to load it, use the floppy-disk icon to overwrite it with your current setup, or the trash icon to delete it.
Bulk-apply tags to a segment
After filtering, select contacts (or use Select All), open the Actions menu, and choose Batch Update. Pick the Tags category and choose Add Tags, Replace All Tags, or Remove Tags to update everyone in the segment at once. You can batch-update lists, lead status, temperature, source, manager, and custom fields the same way.
A tight saved view also powers downstream work, like choosing recipients in an SMS campaign. To control which leads land in your filters, set each contact's lead status and temperature first.
Create and Complete Follow-Up Tasks on Contacts
Follow-up tasks keep your next move on every lead from slipping through the cracks. In Revamp365 you create a task with a due date directly on a contact, and it lands in that contact's Timeline where you can mark it done in one click.
Add a follow-up task
- Open Contacts from the left navigation and click the contact you want to follow up with.
- On the contact's Timeline tab, click the Add Activity button in the toolbar.
- Choose Add Task from the dropdown menu.
- Fill in the task fields and click Add Task to save.
The task is created with a pending status and immediately appears as an entry in the Timeline. A confirmation toast ("Task added successfully") confirms it saved.
Task fields
| Field |
Required |
Notes |
| Title |
Yes |
Short label, up to 255 characters. The Add Task button stays disabled until you enter one. |
| Description |
No |
Free text, up to 5,000 characters. |
| Due Date |
No |
A date-and-time picker. Sets when the task is due. |
Read a task in the timeline
Each task shows in the Timeline with a status badge and, when you set one, a due date rendered in orange (for example, "Due: Jun 12, 2026"). The badge style reflects the task's status — pending and in-progress tasks look different from completed ones, so you can scan the list and spot what's still open.
Because tasks live in the Timeline alongside calls, notes, and texts, you see the full history of a contact in one place. For more on reading that feed, see Use the contact timeline.
Complete or delete a task
- Complete: On any task that isn't already done, click the check icon on the right of the Timeline row. The task is stamped completed, its badge updates, and the check button disappears.
- Delete: Click the trash icon to remove the task entirely. A confirmation toast confirms the deletion.
Completing a task records the completion time and can kick off any automation you've built on the task completed trigger — for example, auto-creating the next step or sending a notification.
Stay ahead of due dates
Revamp365 watches for tasks that pass their due date without being completed. When a task goes overdue, it fires a task overdue automation trigger, so you can wire up a reminder or escalation instead of relying on memory.
A few things to keep in mind:
- Tasks are tied to the specific contact you created them on, and only you (the owner) see and manage them.
- The check icon is a one-click complete action; there's no separate edit dialog for a saved task, so to change the title or due date, delete it and add a fresh one.
- Pair tasks with a clear lead stage so your pipeline and your to-do list stay in sync — see Set lead status and temperature.
Read Skip Trace Results and Choose the Best Phone Number
After a skip trace runs, Revamp365 returns the owner's name, phone numbers, emails, and any connected people in the Owner Information dialog. This explains how to read that panel, tell a mobile from a landline, and decide which number to call first.
Open the Results Panel
From a contact's detail page, open the Companies tab and click the company (the owner entity) to open the Owner Information dialog. The panel loads the stored skip trace result for that mailing address, so reopening it later shows the same numbers without re-running (and re-paying for) the trace. If a trace was attempted but came back empty, you will see a red note: "No contact information (email/phone) was returned for this skip trace."
Read the Contact Card
Each person is shown as a card with a CONTACT INFO column, an EMAIL column, and a TAGS column. The first listed phone is the primary number; up to two alternates follow. Every phone has its own Valid / Invalid / Unknown dropdown next to it.
Line type matters because texting only works on mobile numbers. The skip trace tags each number Mobile or Landline:
- Mobile — a cell number, best for SMS and most likely to reach the person directly.
- Landline — a home or office line, voice only, no texting.
For connected people, the line type appears as a small note in parentheses beside the number, such as "(Mobile)". When you add a number yourself, you choose its type as you save it.
Choose the Best Number
Work down the card in this order:
- Prefer a Mobile line over a landline if you plan to text or want the most direct reach.
- Trust verified numbers. A number another investor already confirmed as Valid is your strongest lead; skip anything marked Invalid.
- Check the owner badge. Confirmed principals are flagged OWNER 1, OWNER 2, or ASSOCIATE, and a per-person dropdown lets you set Verified Owner, Unverified, or Unknown. Call the verified owner before associates.
- Fall back to alternates only when the primary is a landline or marked Invalid.
Mark What You Learn
When you call or text a number, set its dropdown to Valid (it answered and was the right person) or Invalid (wrong number or disconnected). These statuses save to the shared result for that address, so your verification carries forward the next time you — or another user — open the same owner. You can also use Add Phone or Add Email to record a number you found elsewhere, choosing Mobile or Landline as you add a phone.
Connected People and Deep Trace
Below the main owner, the panel lists connected people (relatives and associates) with their own phones and emails, each with its own Valid/Invalid/Unknown control. If a Deep Trace investigation ran on an LLC-owned property, a separate panel shows the Identified Principal with a high, medium, or low confidence badge plus any phones and emails discovered from public and social sources — useful when the basic trace returns no direct number.
Act on the Number
Once you pick a number, use the user-plus button to push the person into your contacts, then call or text from there. Before you run any texting campaign, scrub the numbers you marked Invalid and honor opt-outs — see Mark a Contact DNC and Understand STOP Opt-Outs. To run a trace in the first place, see Skip Trace a Single Contact.
Edit a Contact's Name, Phone, Email, and Mailing Address
Every field on a Revamp365 contact saves the moment you click away, so there is no Save button to hunt for. Open a contact, click the value you want to change, type, and the update is written and logged to the timeline automatically.
Open the contact
- In the left sidebar, click Contacts CRM.
- Click any contact row to open its detail page.
- The editable fields sit in the left details column: First Name, Last Name, the CONTACT INFO section (phone numbers plus an EMAIL sub-section), Mailing Address, and Property Address.
Edit the name
First Name and Last Name are separate inline fields near the top of the page.
- Click the First Name value, type the new text, and press Enter (or click away).
- Repeat for Last Name.
Revamp365 rebuilds the contact's full display name from these two fields, so update them rather than editing a combined name string.
Edit phone numbers
The phone area sits at the top of the CONTACT INFO section and holds one primary number plus any additional numbers.
- Edit the primary number: click it, type the new value, then press Enter. You can also use the pencil menu and choose Edit Number.
- Set the type: use the type pill or the pencil menu to pick Mobile, Home, Work, or Other.
- Mark verification: choose Valid, Invalid, or Unknown.
- Add another number: click Add Phone, enter the number, pick a type, and confirm with the check.
- Remove a number: click the trash icon on that row.
Phone numbers must be a valid 10-digit US number (or 11 digits starting with 1). International numbers must start with +. An invalid entry triggers an error and is not saved.
Edit email addresses
The EMAIL block works the same way.
- Click the primary email to edit it, or open the pencil menu and choose Edit Email.
- Set verification to Valid, Invalid, or Unknown.
- Click Add Email to store additional addresses, or the trash icon to remove one.
Edit mailing and property addresses
Both Mailing Address and Property Address are single free-text fields that hold the full address on one line.
- Click the field (for example, "Enter full mailing address").
- Type the complete street, city, state, and ZIP.
- Press Enter to save.
| Action |
Result |
| Save a mailing or property address |
Stored as one string; the linked property record updates |
| Clear the field |
The address is removed from the contact |
Because the address is stored as a whole string, enter it exactly as you want it displayed.
What happens after a save
Each change shows a "Contact updated successfully" toast, stamps the contact's last-updated time, and writes an entry to the contact timeline. To attach a deal record or owned property instead of editing the address line, see add a property to a contact.
Add a Property to a Contact Record
Linking a property to a contact keeps the address, valuation, and your relationship to the deal attached to the right person. Revamp365 can auto-pull property data from an address search, or you can enter the details by hand.
Open the Properties tab
- Go to Contacts CRM and click a contact to open their record.
- Click the Properties tab (the house icon). A number badge shows how many properties are already linked.
- Click Link Property in the top toolbar.
Search for an address
The fastest path pulls real property data automatically:
- In the Link Property dialog, start typing an address (3+ characters) in the search box.
- Pick a match from the autocomplete dropdown.
- Click Look up property. Revamp365 fetches a record card with beds, baths, square footage, year built, lot size, and a valuation (AVM or price) when available.
If the lookup finds no record, you can Link with address only (uses the geocoded address) or switch to manual entry.
Set the relationship and notes
After a property resolves, choose how this contact relates to it. The Relationship Type and Notes fields are both optional.
| Relationship Type |
Use it when the contact is |
| Interested |
A buyer or party interested in the property |
| Sold By Owner |
The seller who sold it |
| Owned - Primary |
The owner, primary residence |
| Owned - Portfolio |
The owner, investment portfolio |
| Seller Lead For |
A seller lead tied to this property |
| Buyer For |
A buyer tied to this property |
| Other |
None of the above |
Choosing Owned - Primary copies the address into the contact's mailing address. If that field is empty it fills automatically; if an address is already set, Revamp365 asks before overwriting it.
Click Link Property to save. You'll see a "Property linked successfully" confirmation.
Enter a property manually
No address match, or an off-market deal? Click or enter manually (or Enter manually after a failed lookup):
- Address is required; City, State, ZIP Code, and County are optional.
- Set a relationship type and notes the same way.
Manage linked properties
Each linked property appears as a card showing location, price, AVM, ARV, beds/baths, and your notes. A Summary strip at the top totals the count and combined values.
- Click the pencil icon to edit the link's details.
- Click the unlink (chain) icon to remove it.
- Click anywhere on the card to open the full property detail view.
You can't link the same property twice. Revamp365 blocks a duplicate when the property ID and type already exist on the contact.
To keep the rest of the record current, see edit contact basic details. For the calls, texts, notes, and system events tracked on a contact, see the contact timeline.
Use the Contact Timeline for Calls, Texts, Notes, and System Events
Every contact in Revamp365 keeps a single chronological feed of everything that has happened with that lead. The timeline pulls calls, texts, emails, notes, tasks, and behind-the-scenes system events into one place so you never lose context.
Open the timeline
- Go to Contacts CRM in the left sidebar.
- Click any contact to open their detail page.
- The Timeline tab is selected by default. The tab badge shows how many activities exist.
Activities appear newest-first. Pinned Lead Notes are grouped in a highlighted yellow section at the very top, above the dated feed.
What appears in the feed
The timeline merges live records and logged activity. Common rows include:
| Row type |
What it shows |
| Calls |
AI voice calls and manual dialer calls, with outcome, duration, sentiment, and voicemail badges |
| SMS |
Outbound and inbound texts, tagged Sent or Received; click the row to open the thread where MMS image attachments show inline |
| Emails |
Campaign sends per recipient, with Sent, Opened, or Clicked status |
| Notes |
Sticky notes and Lead Notes you add by hand |
| Tasks |
Follow-up tasks with status and due date |
| System events |
Tag and list changes, lead status/temperature changes, AI summary updates, contact-info edits, e-sign, and CRM sync |
Automated rows created by workflows or automations are labeled System Automation with a robot icon so you can tell them apart from your own actions. That one label covers every system in the product, not only the Automations engine — see who did this? reading the actor label.
Open the full detail of a row
Rows for calls, texts, emails, Zoom meetings, bookings, and CRM sync are clickable (a chevron appears on the right). Clicking them opens the matching detail view — for example, a call recording and transcript, or the SMS thread scrolled to that exact message.
Filter which activity types show
Use the activity-type dropdown in the timeline toolbar (it reads All activities by default) to focus the feed.
- Open the dropdown to see the Activity types list.
- Check or uncheck types such as Calls, SMS, Emails, Tasks, Lead changes, or CRM sync.
- Changes save automatically and persist on this device.
- Use Select all or Reset to default to restore the full feed.
Add a note or task
Click Add Activity in the toolbar to log something yourself:
- Add Sticky Note — type your note. Check Pin as Lead Note to keep it pinned at the top; otherwise it stays inline as a timestamped sticky note.
- Add Task — set a title, optional description, and due date.
On any sticky note you can later use the pin icon to promote it to a Lead Note, or edit and delete it. For richer note workflows, see add, pin, and manage contact notes.
Tips
- Files reach the timeline as MMS attachments on a text message, not a separate upload.
- If a row looks duplicated, Revamp365 already hides known duplicates (such as a workflow text and its raw SMS row), so the feed stays clean.
- A call that rang you and then transferred to your AI agent shows once, as the richer AI Voice Call entry.
Add, Pin, and Manage Notes on a Contact
Revamp365 gives every contact two kinds of notes: a single always-visible Lead Notes block and timestamped sticky notes that stack in the activity timeline. Pin a sticky note and it rises to the top so the next person opening the record sees it first.
Open a contact and find the notes
- Go to Contacts in the left navigation and click any contact to open the detail page.
- The Lead Notes panel sits on the left side under the contact's details (yellow marker, sticky-note icon).
- The timeline on the right holds sticky notes alongside calls, texts, and tasks.
Add or edit Lead Notes
Lead Notes are one running block meant for the summary you always want visible.
- Click the Click to add lead notes... area in the left panel.
- Type your note and click away to save. A Lead notes saved confirmation appears.
- Editing the block again updates the same note rather than creating a new one.
Each save also drops an Added Lead Notes (or Edited Lead Notes) entry into the timeline so you keep a history.
Add a sticky note
Sticky notes are quick, dated entries for "called, left voicemail" moments.
- In the timeline header, open the Add Activity menu and choose Add Sticky Note.
- Type your note (up to 10,000 characters).
- To make it stand out, check Pin as Lead Note.
- Click Add Sticky Note (or Add as Lead Note if you pinned it).
Pin, edit, and delete
Pinned sticky notes appear in a Lead Notes section at the very top of the timeline, above everything else.
| Action |
How |
| Pin a note |
In the note's action buttons, click the pin icon |
| Unpin a note |
Click the pinned-off icon in the Lead Notes section |
| Edit a note |
Click the edit icon, change the text, then save (Cmd/Ctrl+Enter works) |
| Delete a note |
Click the trash icon and confirm |
You can only delete sticky notes you created. Deleting a note also removes its matching timeline entry.
Which note type to use
- Use Lead Notes for the standing summary: motivation, asking price, the one thing to remember.
- Use sticky notes for a log of individual touches you want timestamped and attributed.
- Pin a sticky note when a single update matters more than the rolling summary.
Notes are one piece of the record. Pair them with the contact timeline to see calls and texts in context, and with lead status and temperature to keep the pipeline accurate.
Set a Contact's Lead Status and Lead Temperature
Lead status tracks where a contact sits in your pipeline, and lead temperature flags how warm the lead is. Both live on every contact in your Contacts CRM and are saved the moment you pick a value.
Set them on a single contact
- Open Contacts CRM from the left navigation and click the contact you want to update.
-
Find the Lead Status dropdown and choose a stage (for example, #2 Warm Follow Up).
-
Find the Lead Temperature dropdown and pick Hot, Warm, or Cold.
-
There is no separate Save button. The contact saves automatically as soon as you select a value, and the change is written to the contact's timeline.
To clear lead temperature, reopen the dropdown and choose -- None --.
Status options vs. temperature options
Lead status comes pre-loaded with a full wholesaling pipeline you can rename or replace. Lead temperature is fixed to three values.
| Field |
Default values |
Editable? |
| Lead Status |
NEW, #1 Make Contact, #2 Warm Follow Up, #3 Motivated Appointment Set, #4 Verbal Offer Pending … CLOSED, Dead |
Yes — add, rename, or remove options |
| Lead Temperature |
Hot, Warm, Cold |
No — these three are always the choices |
Any custom status value already saved on a contact (for example, imported from a CSV) is automatically merged into the dropdown so you never lose a value.
Customize status options and colors
- Edit the option list: Lead status options are saved per account through field settings. Adjusting the list updates the dropdown everywhere status appears.
- Color-code values: On a contact page, open the layout editor and click Customize Colors (the palette button). Assign a color to each status or temperature value so leads are easy to scan in the table and on cards.
Update many leads at once
- On the Contacts table, check the boxes next to the leads you want to change.
- Open the bulk update panel and choose the Lead Status or Lead Temperature category.
- Select a value. Leave a field on -- No Change -- to skip it.
- Apply the update. Selections of more than 500 contacts run in the background, and you'll get a notification when they finish.
Filter and review
Lead Status and Lead Temperature appear as sortable columns on the Contacts table, and both are available as filters so you can build views like "Hot leads in #2 Warm Follow Up." Every change is recorded on the contact timeline with the old and new value, so you can see exactly when a lead moved or cooled off.
Once a deal is real, mirror the stage on your board by moving and bulk-updating deals in the pipeline.
Snooze or Reschedule a Follow-Up Task
Plans change, and a follow-up you set for today might need to move to next week. In Revamp365, follow-up tasks live on the contact timeline, and the timeline gives you three actions on a task: create it, mark it complete, and delete it. There is no in-place "snooze" button or due-date editor on an existing task, so the practical way to reschedule is to add a new task with the later due date and close out the old one.
Where follow-up tasks live
Tasks are attached to a single contact and appear in that contact's activity timeline.
- Open Contacts CRM from the left sidebar.
- Click the contact whose task you want to move.
- On the Timeline tab, find the task row. It shows a status badge (for example, pending) and, when a due date is set, an orange Due: {date} label.
For the full create-and-complete flow, see Create and Complete Follow-Up Tasks.
Reschedule by re-creating with a new due date
Because the timeline has no edit affordance for an existing task's due date, you reschedule by adding a replacement task:
-
On the contact's Timeline tab, click Add Activity, then choose Add Task.
-
Re-enter the title and any description, then set the Due Date to the day you want.
-
The Due Date field is a date-and-time picker, so you can also pick a time — a 9:00 AM call-back stays separate from end-of-day admin work.
-
Click Add Task to save. The new task appears in the timeline with its orange Due: label.
-
Close out the original task with the check icon (mark complete) or the trash icon (delete) so you are not chasing two copies.
Leaving Due Date empty creates an undated task with no overdue tracking — useful when you want a reminder but not a deadline.
What you can do with a task
| You want to… |
Do this |
| Move a still-open follow-up later |
Add a new task with the later Due Date, then complete or delete the old one |
| Stop chasing it entirely |
Mark it complete (check icon) or delete it (trash icon) |
A task's status is one of pending, in progress, completed, or cancelled. When the marked-complete status is applied, Revamp365 stamps a completion time on the task automatically.
How overdue tasks behave
- A task is overdue once the current time passes its Due Date and it is not completed or cancelled.
- Revamp365 scans for newly overdue tasks and can fire a task overdue automation trigger when a task crosses its due date.
- The scan tracks the time of each run, not a per-task flag, so a brand-new task dated to a future day that later lapses can fire the trigger when that new date passes.
Quick tips
- Set the exact date each time: there is no one-click "+1 day," so choose the new due date deliberately when you re-create the task.
- Use time, not just date: since the field captures a specific time, due times keep morning call-backs separate from later tasks.
- Don't leave duplicates: after adding the rescheduled task, complete or delete the original so the timeline stays clean.
Add, Rename, or Remove CRM Lead Statuses | Revamp365.ai
Lead status is the dropdown on every contact that tracks where a lead sits in your pipeline. Revamp365 ships a full wholesaling list, and you can replace any of it with your own stages. The option list is saved per account, so a change you make applies to every seat on your team.
Open the lead status options
The controls live inside CRM Field Configuration, not on the contact record itself.
- Open Contacts CRM from the left navigation.
- Click the gear button in the CRM sidebar, labelled CRM Configuration. The CRM Field Configuration dialog opens.
- Type
Lead Status into the Search fields... box to filter the list.
- On the Lead Status row, click the gear icon in the Actions column, labelled Edit Options. A panel opens below headed Options for: Lead Status, showing your current values as badges.
- Click the Edit Options button inside that panel. The Manage Lead Status dialog opens with the editable list.
Everything below happens in that Manage Lead Status dialog.
Add a custom status
- Scroll to Add New Option at the bottom of the dialog.
- Type the status name, for example
Attorney Review.
- Click Add. The value appears at the bottom of Current Options.
- Click Save Changes.
A few rules the form enforces:
- A status name can be up to 255 characters.
- An exact duplicate is ignored. If you type a name that already matches an option character for character, clicking Add does nothing rather than creating a second copy.
- New options are always appended to the end of the list.
Watch out for capitalization
The Add box and the server disagree about what counts as a duplicate, and the difference will bite you.
Typing Closed when CLOSED already exists is accepted — the new value appears in Current Options as though nothing is wrong. Clicking Save Changes then fails with a message like:
The options.15 field has a duplicate value. (and 1 more error)
The server treats two names as the same when they differ only by capitalization, so it rejects the whole save. Nothing is stored, and the dialog stays open with your edits intact. The number in the message is a position in the list, not a status name, so it does not tell you which value is at fault.
To fix it, find the two spellings that differ only in case, delete or rename one of them, then click Save Changes again.
Rename a status
Each row in Current Options is an editable text box.
- Click into the row holding the status you want to change.
- Edit the text.
- Click Save Changes.
Renaming does not update contacts that already use the old name. The rename changes the option list only. Every contact still holding the old value keeps it, and because Revamp365 merges values that are in use back into the dropdown, the old name reappears in the list alongside your new one.
If you want the rename to actually move your leads, do it in two steps:
- Add the new status and save.
- Filter your contacts by the old status, select them, and bulk-update them to the new status.
- Come back and remove the old status.
Remove a status
- Hover the row you want to delete. A red trash icon appears at the right.
- Click the trash icon. The row disappears from the list.
- Click Save Changes.
Two things to know before you remove anything:
- A status still in use will come back. Removing it from the list does not clear it from your contacts, and Revamp365 merges every value currently saved on a contact back into the dropdown. So a status stays visible until no contact is using it. Reassign those contacts first, then remove the option.
- You cannot save an empty list. If you delete every option, Save Changes refuses with the message You must have at least one option.
Reordering is not supported
Lead statuses appear in the order they were added, and there is currently no way to change that order. The list is not drag-and-drop, and there are no move-up or move-down controls.
If a specific order matters to you, the only way to get it today is to rebuild the list in the order you want: remove the options and re-add them in sequence, remembering that any status still assigned to a contact will reappear until those contacts are reassigned.
Where else these options appear
Saving the list updates every place lead status is offered:
- The Lead Status dropdown on each contact record
- The lead status column and filters in the Contacts CRM table
- Bulk-update actions
- Automation conditions and actions that read or set lead status
Lead status is not a deal pipeline stage
These are two different fields and editing one has no effect on the other.
|
Lead Status |
Deal Pipeline Stage |
| Lives on |
A contact |
A deal |
| Tracks |
How far a lead has moved through follow-up |
Where a deal sits on the pipeline board |
| Edited in |
CRM Field Configuration → Lead Status → Edit Options |
Pipeline settings |
If you are trying to change the columns on your pipeline board, see Customize Pipeline Stages instead.
Related fields you can edit the same way
The CRM Field Configuration dialog manages several other dropdowns through the identical Edit Options path, including Lead Source, Deal Type, and Contact Type.
Lead Temperature is the exception. It is fixed to Hot, Warm, and Cold. Those three values are locked, the Add New Option box is hidden, and the server rejects any attempt to change them.
If a change does not appear
- Check that you clicked Save Changes. Closing the dialog with Cancel or the X discards everything you typed.
- Confirm the toast. A successful save shows Lead Status updated successfully. A failure shows the reason.
- Read a "duplicate value" error as a capitalization clash. A message naming
options.<number> means two of your statuses differ only by capitalization. See Watch out for capitalization above.
- Reload the Contacts CRM page. The option list is cached per account for speed, and a hard reload picks up the newly saved values.
- Remember it is account-wide. Another seat on your team may have changed the list. The options are stored once for the whole account, not per user.
Next steps
- Set a Contact's Lead Status and Lead Temperature
- Use Tags, Saved Views, Filters, and Lists
Who Did This? Reading the Actor Label on the Contact Timeline
Every row on a contact's timeline carries an actor — the person or system that caused it. Rows you caused show your name. Rows the software caused show a robot icon and the words System Automation. That second label is doing more work than it looks like it is, and knowing what it does and does not tell you saves a lot of wasted searching.
Where the label appears
- Open Contacts CRM and click the contact.
- The Timeline tab is selected by default.
- Each row shows its actor next to the timestamp.
For a fuller tour of the feed itself, see use the contact timeline.
What System Automation actually means
It means a person did not do this. It does not mean an automation did.
Sixteen different sources all render as that one label, including:
- Automations
- Workflows and campaigns
- Booking workflows
- SMS AI agents and other AI-written activity
- AI voice agents and their post-call field updates
- Call flows and inbound callback flows
- Zapier, inbound webhooks, and other inbound lead sources
- Website follow-ups and anonymous visitor tracking
- Scheduling, CRM inbound sync, and general system events
They are not distinguished on the badge today. So the label narrows the field from "everyone with a login" to "one of sixteen systems", and no further.
Why that sends people to the wrong page
The word on the badge is Automation, and there is exactly one page in the product named Automations. The natural next move is to open it, check its Logs tab, and find nothing — or worse, find rows that say the automation skipped the record.
That page only covers automations. The workflows and campaigns under AI Voice & Chat, and SMS AI agents, have no log page at all, so their work is invisible there by design. See why the Automations Logs tab doesn't show everything that ran.
Read the row, not the badge
The row text is far more specific than the actor label. Use it to work out which engine to go and check.
| What the row says |
Which system did it |
Where to confirm |
| Campaign paused — contact replied |
A workflow, pausing itself because the lead texted back |
AI Voice & Chat → Workflows |
| Campaign stopped — reply handed to AI agent |
A workflow handing the thread over |
AI Voice & Chat → Workflows, then the agent |
| AI Agent enrolled, followed by AI Agent completed or AI Agent stopped |
An SMS AI agent. The description names the agent in quotes |
The thread in Conversations |
| An outbound text with no agent or campaign row around it |
An automation, or a person who typed it |
Automations → Logs, filtered to that contact |
| A booking confirmation or reminder |
A booking workflow |
Calendar → Workflow Logs |
| A field or lead-status change straight after a call |
An AI voice agent's post-call analysis |
AI Voice & Chat → Phone Logs |
| A contact created with no prior activity |
An inbound lead source — a form, Zapier, or a webhook |
Inbound lead logs |
When a row names an agent or a campaign in its description, that name is the fastest route to the truth. Two rows a second apart, one naming a workflow and one naming an agent, are usually a single handoff — see hand a cadence reply to an SMS AI agent.
Practical rules
- Do not treat a System Automation row as proof an automation ran. It is proof a system ran.
- Start at the timeline, not at a log page. The timeline is the only surface that merges every engine into one feed.
- Match on time, not on wording. When several systems fire off one inbound text, their rows land within the same second or two.
- Ask which engine could have done it, then open that engine's own screen. The table above covers the common cases.
Send leads into Revamp365 from Zapier, Make, Carrot, or custom forms
Inbound docs match the in-app guide. For screenshots, troubleshooting tables, FAQ, field reference, limits, HMAC verification, duplicate handling — this article mirrors the wizard under Integrations & Apps → Webhooks → Inbound Docs (Beta). Bookmark either version.
Quick start
Revamp365 can accept leads from any tool that can POST JSON or application/x-www-form-urlencoded — Zapier, Make.com, Carrot sites, Jotform, raw HTML forms, custom scripts, you name it. You create an Inbound Lead Source once per tool, copy its webhook URL, and paste that URL into the sender. Every matching lead becomes a Contact automatically.
- Go to Integrations & Apps → Webhooks → Inbound Leads.
- Click New source, give it a name (e.g. Carrot forms), and save.
- Copy the webhook URL shown on the Done step.
- Paste that URL into your tool's webhook or HTTP-POST action.
- Submit a real lead and confirm it appears under Inbound Logs.
Carrot integration
Carrot is the highest-priority integration for most PPC agencies. Carrot sites post Gravity Forms submissions as application/x-www-form-urlencoded with field labels like Name, Phone, Email, and Property Address (City). Revamp accepts that content type and auto-detects those labels — no field mapping and no JSON conversion required.
- In your Carrot dashboard, open Settings → Leads → Webhooks.
- Add a new webhook. Set URL to the webhook URL from your Inbound Lead Source.
- Set Method to
POST. Leave Carrot's default content type (form-urlencoded) — do not look for a JSON option; Carrot does not offer one.
- Leave HMAC off on the Revamp source (Carrot cannot send a signature header).
- Save and submit a test lead from your Carrot site. The lead will land in Contacts CRM within seconds.
If a custom Carrot form uses unusual labels, return to the source's Field Mapping step and paste a sample payload — Revamp will detect the available paths so you can map them.
Zapier integration
Use Zapier when you want to bridge from another system (Facebook Lead Ads, Gravity Forms, a spreadsheet, etc.) into Revamp365.
- Create a new Zap. Pick any trigger (e.g. Facebook Lead Ads → New Lead).
- Add an action step: Webhooks by Zapier → POST.
- Set URL to your Inbound Lead Source URL.
- Set Payload Type to JSON.
- Map the trigger's fields onto keys like
first_name, last_name, email, phone, address, city, state, zip, tags, notes.
- Turn the Zap on. New leads will flow into Revamp within a minute of the source firing.
Only have a single "name" field? Map it to a key called full_name instead of first_name (Podio's Title, a Carrot "Full name" field, and similar). Revamp automatically splits it into first and last name on the first space — no Code step needed. name and contact_name behave the same way.
Make.com integration
Make (formerly Integromat) uses the HTTP → Make a request module.
- Add the HTTP → Make a request module after your trigger.
- Set URL to your Inbound Lead Source URL.
- Set Method to
POST.
- Add a header
Content-Type: application/json.
- Set Body type to Raw and enter JSON using module output variables for the values.
Custom form or curl
Any HTTP client can post to your webhook URL. Here is a minimal cURL example:
curl -X POST "https://revamp365.ai/api/webhooks/inbound-leads/YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "5125550100",
"address": "123 Main St",
"city": "Austin",
"state": "TX",
"zip": "78701",
"tags": ["hot-lead"],
"notes": "Submitted via marketing form"
}'
Successful submissions respond with HTTP 202 and {"success": true, "event_id": 123}. The lead is processed asynchronously on the queue.
Canonical payload reference
Every inbound payload is normalized into this canonical shape before creating or merging a Contact. You do not have to send every field — at minimum you need an email or a phone.
Identity
| Field |
Type |
Notes |
email |
string |
Validated as email; lowercased |
phone |
string |
Any format; normalized to E.164 |
first_name / last_name |
string |
Max 200 chars each |
full_name (also name or contact_name) |
string |
Use when the source only has a single combined name field. Revamp splits it on the first space — everything before becomes the first name, everything after the last name (e.g. "Mark Miller" → Mark / Miller). Ignored if you already send first_name. |
Mailing address (the person's postal address)
| Field |
Type |
Notes |
address_full |
string |
Whole address in one field ("123 Main St, Philadelphia, PA 19103") — Revamp splits it into the components below. Explicitly-sent components win over the split. |
address / city / state / zip |
string |
Stored on Contact.mailing_* |
Property address (seller leads)
Use these when the form is asking "what house are you selling?" — they map to the CRM's Most Recent Property (MRP) columns on the Contact, not the mailing address.
| Field |
Type |
Notes |
property_address_full |
string |
Whole property address in one field — split the same way as address_full |
property_address |
string |
Subject-property street |
property_city / property_state / property_zip |
string |
Populates mrp_city / mrp_state / mrp_zip |
Lead lifecycle
| Field |
Type |
Notes |
lead_source |
string |
Falls back to the source's default |
lead_status |
string |
Preserved on existing contacts; new contacts default to NEW |
lead_temperature |
string |
e.g. Hot / Warm / Cool / Cold |
lead_manager_email |
string |
Matches a Revamp user by email and auto-assigns as lead manager |
date_lead_created |
string (date) |
When the lead originally arrived — useful when migrating history from another CRM. Any parseable date (2026-06-15, 06/15/2026). Never moves an existing contact's date. |
Working the lead
| Field |
Type |
Notes |
objective |
string |
Matched to your Objective presets by key or label (case-insensitive); unrecognized values become Unknown / Discovery. Fills an empty objective; overwrites only if the source allows overwriting and the objective isn't locked. |
next_steps |
string |
Free text shown in Next Steps on the contact page. Fills when empty; overwrites only if the source allows overwriting. |
Classification & lists (unioned on merge)
Each accepts an array or a comma-separated string. Values are merged into whatever is already on the contact — nothing is overwritten.
| Field |
Type |
Notes |
contact_type |
array / string |
e.g. lead, buyer, seller (lead is auto-added) |
deal_type |
array / string |
e.g. wholesale, flip, rental |
price_range |
array / string |
|
counties |
array / string |
|
lists |
array / string |
|
tags |
array / string |
Unioned with source default tags |
Provenance & extras
| Field |
Type |
Notes |
external_id |
string |
CRM id from the sender; used for dedup alongside phone/email |
company |
string |
Added to the contact's company names (unioned, never overwritten) |
notes |
string |
Saved as a timeline note on the contact (never overwritten) |
custom_fields |
object |
Arbitrary key/value — captured as ContactCustomField |
Field mapping deep-dive
If your sender uses different key names or a nested structure, open your Inbound Lead Source and go to the Field Mapping step.
- Paste a real sample payload from your tool into the textarea at the top.
- Revamp recursively flattens the JSON into dot-paths (e.g.
data.lead.email_address, items[0].phone).
- For each canonical field on the left, pick a path on the right or switch to Static value to hard-code a value (useful for
lead_source: Facebook Ads).
- Use Add custom field for anything else you want to capture.
- Save and return to the Test step to preview — Revamp will show exactly which Contact would be created or merged, without writing anything.
No mapping = best-effort auto-detect. Zapier's default output shape, Carrot/Gravity Forms labels (Name, Phone, Email, Property Address (City)), and simple {first_name, email, phone} payloads all work with zero configuration.
Map a lead field to a custom CRM field you created
Anything that isn't one of the built-in fields above can still land on the Contact — as a custom field. If you've already created a custom field in your Contacts CRM (e.g. Motivation, Asking Price, Best time to call), you can route an incoming value straight into it.
The one rule that makes it work: the key you send under custom_fields must match the custom field's name exactly — same spelling and capitalization as it appears in your CRM.
Option A — In-app Field Mapping (recommended; works with any sender)
This is the right path for Zapier, where each row in the POST action's Data table is a single flat key — you send a plain key and let Revamp route it to the correct custom field.
- Open your Inbound Lead Source and go to the Field Mapping step.
- Under Custom fields, click Add custom field.
- In the field name box, type the custom field's name exactly as it appears in your CRM (e.g.
Motivation).
- Leave the toggle on From payload and pick the incoming path that holds the value (e.g.
motivation, or a nested path like data.lead.motivation) — or switch to Static value to hard-code one.
- Save and use the Test step to confirm the value appears on the previewed Contact.
Option B — Send a custom_fields object directly
If your sender can emit nested JSON (Make.com, a custom script, or cURL), include a custom_fields object whose keys are your CRM field names:
{
"phone": "5125550100",
"custom_fields": {
"Motivation": "Divorce",
"Asking Price": "250000"
}
}
Zapier's flat Data rows can't build a nested object on their own, so for Zapier use Option A above.
No matching field yet? If you send a custom_fields key that doesn't match an existing custom field, Revamp auto-creates a new text field with that exact name (up to 50 auto-created fields per account). Handy — but a typo creates a duplicate field, so copy the name carefully.
On merge: like the built-in fields, an existing non-empty custom-field value is never overwritten by a later inbound lead — blanks are filled, real data is preserved.
HMAC security
When your sender supports custom headers, you can require an HMAC-SHA256 signature so nobody else can POST to your URL.
- Edit your Inbound Lead Source and go to the Security step.
- Click Generate secret (or Rotate) and copy the plaintext secret — it is shown once.
- In Zapier's POST action, add a header:
- Name:
X-Revamp-Signature
- Value: compute
hmac_sha256(body, secret) in a Code-by-Zapier step, or use Zapier's built-in webhook signature helper if available.
- Requests without a valid signature will be rejected with a generic 404 (to avoid revealing whether the URL exists).
Carrot and most simple webhook senders do not support custom headers — skip HMAC for those and rely on the token in the URL for protection.
Troubleshooting
If a Zap fires successfully but no Contact appears, check the Inbound Logs tab under Webhooks. Every POST Revamp receives for a known source is logged there, including rejected content types and oversized bodies. Common situations:
- Status:
ignored, error "Payload has neither a normalizable phone nor email" — your sender isn't including a valid phone or email under the keys Revamp expects. Open Field Mapping and map them explicitly.
- Status:
received and it stays there — your queue worker isn't running inbound-leads. On self-hosted installs, make sure the worker includes that queue name. Contact support if you are not self-hosted.
- Status:
failed — hover the error column for the reason. Click the retry icon after fixing the underlying issue (e.g. adjusting a field mapping).
- Status:
failed, error about Content-Type — the sender used a type we do not accept (for example text/plain). Carrot and Gravity Forms should send application/x-www-form-urlencoded; Zapier/Make should send application/json.
- No POST appears at all — the source may be inactive, the token in the URL may be wrong, or HMAC may be misconfigured. Open your sender's own logs and confirm it is hitting the correct URL. Unknown tokens return 404 and are not logged (so the URL cannot be probed).
FAQ
Does a matched Contact get overwritten when new data arrives? No. Revamp uses fill-blanks merge logic — only empty columns on the existing Contact are updated. Tags are unioned. Existing lead_source / lead_status are preserved so your own edits are never lost.
How are duplicates detected? Revamp normalizes incoming phones to E.164 and emails to lowercase, then looks for a matching Contact in your account — first by phone, then by email. If one is found, it is merged; otherwise a new Contact is created with lead_status = NEW.
What is the rate limit? 200 requests/minute per source by default. Legitimate senders will never hit this. If you need more, contact support.
Is there a daily cap? You'll get a one-time in-app notification if a single day crosses 10,000 inbound events for your account — that's usually a sign of a broken loop. Nothing is blocked.
Can I delete a source? Yes. Deleting an Inbound Lead Source soft-deletes it for 30 days — the URL stops accepting leads immediately, and any events still queued will be ignored. Contacts already created by that source remain in your CRM.