🛠️ Labor Day: Gold plan at $47/mo. 50% off. Build your deal pipeline this fall. Claim Offer →
Features Pricing Demo
Log In Get Started

Documentation

Guides for setting up your funnels and growing your pipeline.

Getting Started

Account Setup

This is the short list of things worth doing in your first sitting, in an order that means you are not blocked halfway through. Everything here has its own article if you want the detail.

Do these first

  1. Finish the onboarding prompts. Your market or service area, your business phone, and the email address that should receive lead alerts. That last one matters most: it is how you find out a lead arrived.
  2. Set up sending email under Settings → Email. Nothing automated can reach anyone until this works, and everything else you build assumes it.
  3. Add your branding: logo, favicon, colours, brand name.
  4. Connect your domain, if you have one. DNS takes time, so start it early and carry on with other things while it propagates.
  5. Enable one funnel and edit its headline. One working funnel beats five half-built ones.
  6. Submit your own form and watch the whole flow: the confirmation, the lead appearing, the alert arriving. This one step catches more setup mistakes than any amount of reading.

Then, when you need them

Appointments, dialer and SMS, direct mail, the content engines, and the API are all there when the basics are working. None of them help if leads cannot reach you or you cannot reach them, which is why they are not on the first list.

Tips to get the most out of it

  • Do the test submission before anything else feels finished. It is the only real proof the chain works end to end, and it takes two minutes.
  • Start the domain early. It is the one step with a waiting period you cannot shorten.
  • Resist enabling everything on day one. Get one funnel producing leads, then add channels. A dashboard full of half-configured features is harder to debug than an empty one.
  • Set the lead alert email to something you actually read on your phone. Speed to lead is the whole game and an alert you see tomorrow is not an alert.

Common problems

I built a funnel and no leads are arriving. Enabled is not promoted. Nobody has the link yet. See Sharing Your Funnels.

A lead arrived but I got no email. Sending email is not configured, or no lead alert address is set. Check Settings → Email.

A feature I expected is missing. Most missing features are plan gating rather than a fault. Check Account → Plan.

Related

Email (SMTP) · Connecting Your Domain · White-Label Branding · Funnel Types

Dashboard Overview

The dashboard is the page you land on after signing in. Its job is to answer one question in a glance: what needs my attention today.

What it shows

Summary figures across your account plus your most recent activity, with a period filter so you can look at a window that matters rather than everything since you started. All Time is available, but a shorter window is usually more useful for deciding what to do next.

Using it day to day

Treat the dashboard as a starting point, not a workspace. It tells you something needs doing; the actual work happens in Leads, Deals, and Tasks. The quickest way to work is to glance here, then click straight through to the list you need.

Tips to get the most out of it

  • Check it first thing, then leave it. Numbers do not move because you watched them.
  • Use a short period filter for decisions and All Time for context. This week tells you what to do today. All Time tells you whether the business is growing.
  • If the numbers look wrong, suspect lead and deal statuses first. Everything here is computed from those, so a pipeline nobody updates produces a dashboard nobody can trust.
  • Use Quick Add rather than navigating when you need to log a lead or a deal fast, especially mid-call.

Common problems

The counts do not match what I expect. They are derived from lead and deal status. Stale statuses produce stale numbers.

It looks empty on a new account. Expected. It fills as leads arrive.

A team member sees less than I do. Sections are gated by permission, so their dashboard reflects what they can access.

Related

Navigation & Quick Actions · Lead Dashboard & Filtering · Dashboard Metrics

Navigation & Quick Actions

A quick map of the admin so you can stop hunting for things. The sidebar is grouped by what you are doing, and the fastest paths are not always the obvious ones.

How the sidebar is organised

The upper section is your day-to-day work, roughly in the order a deal travels: Dashboard, Leads, Tasks, Appointments, Phone, Deals, Properties, Funnels, Forms, Content, Direct Mail, Analytics and Attribution.

The lower Account section is setup and administration: Team, Security, Audit Log, Export, API Keys, Settings and Support.

Several entries expand into groups. Appointments holds All Appointments, Calendar, Types and Settings. Content holds the Content Engine, Blog, Blog CTAs, Concierge Chats, Categories, Pages, Media, FAQs and Reviews. Direct Mail holds Send, Bulk Send and Templates.

Quick Add

The Quick Add menu creates a lead, property, deal, review or blog post from anywhere, without navigating to that section first. This is the one to learn: logging a lead mid-call is the difference between capturing it and meaning to.

Your avatar menu

Top right holds Profile, Security, Settings, Team, Plan, Support and sign out.

Tips to get the most out of it

  • Learn Quick Add first. It removes the friction that stops people logging things, which is the main reason CRMs go stale.
  • Bookmark your filtered leads view rather than the dashboard. Land on your call list instead of a summary.
  • Remember the split: work above, setup below. If you are hunting for something configurable, it is in the Account section or in Settings.
  • If a nav item is missing, it is permissions or plan, not a bug. Team members see only what their permissions allow.

Common problems

A section I expected is not in my sidebar. Either your plan does not include it or, if you are a team member, you lack that permission. Check Account → Plan or ask your account owner.

I can see a page by URL but not in the nav. Nav visibility and page access are separate checks. Do not rely on a hidden nav item as a permission.

Related

Account Setup · Dashboard Overview · Team Members & Access Control

Connecting Your Domain

Connecting your own domain means your funnels run on yourdomain.com instead of a path on the platform domain. It is more trustworthy to a visitor, shorter on printed material, and it does not advertise which platform you use.

Setup

  1. Go to Settings and find Custom Domains.
  2. Click Add Domain and enter the domain or subdomain you want to use.
  3. At your DNS provider, create the CNAME record shown.
  4. Come back and click Verify DNS.
  5. Once verified, your funnels are reachable on that domain.

DNS takes time

DNS changes propagate on their own schedule. Verification failing immediately after you add the record is normal, not a fault. Wait and try again rather than changing the record, because repeatedly editing DNS restarts the clock and is the most common way people turn a 20 minute wait into an afternoon.

Sending domain

Separately from the domain your funnels load on, there is a Sending Domain for email. Getting both onto your own domain is what makes your whole operation look like one business.

Tips to get the most out of it

  • A subdomain is often the better choice. Something like offers.yourdomain.com leaves your main site untouched and is far simpler to set up.
  • Do this before you spend on ads or print anything. Changing the URL after signs are in the ground means dead links in the wild.
  • Set up email authentication on the same domain. SPF, DKIM and DMARC decide whether your email reaches inboxes.
  • Test on a phone once verified. Most of your traffic is mobile.

Common problems

Verify DNS keeps failing. Usually propagation. Wait longer. Then confirm the CNAME was created exactly as shown, at the right host, with no trailing dot added or removed by your provider.

The domain loads but shows the wrong thing. Another DNS record for that host is winning. Remove any conflicting A or CNAME record.

It works on the platform domain but not mine. Verification has not completed yet.

Related

Sharing Your Funnels · Email (SMTP) · White-Label Branding

White-Label Branding

White-label branding replaces the platform look with yours: your logo, your favicon, your colors, your brand name. Combined with your own domain, a visitor has no reason to know what you built the funnel with.

What you can set

  1. Go to Settings → Branding.
  2. Set your Brand Name.
  3. Upload New Logo. Once done the page confirms Custom logo active.
  4. Upload New Favicon, confirmed as Custom favicon active. This is the small icon in a browser tab and it is the detail most people forget.
  5. Set your Brand Color, and an Accent Color Override if you need a second color.
  6. Click Save Branding.

Tips to get the most out of it

  • Do the favicon. It is the cheapest credibility in the product and a default icon in the tab undoes the rest of your branding.
  • Upload a logo with a transparent background. A white rectangle behind your logo on a dark header looks broken.
  • Pick a brand color with real contrast against white. Buttons in a pale color do not read as buttons, and that costs you clicks.
  • Pair this with a custom domain. Branding on a platform URL is a half-finished job, and the URL is what people actually scrutinise.
  • Check a funnel on a phone after saving. Logos that look right on a desktop header often crowd a mobile one.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

My old logo still shows. Hard refresh. Browsers and caches hold logos and favicons aggressively, and favicons are the worst offenders.

The logo looks stretched. Upload at the proportions you want rather than relying on scaling.

I do not see the Branding options. White-label is a plan feature. Check Account → Plan.

Related

Connecting Your Domain · Funnel Page Content & Branding · Account Setup

Leads & CRM

Lead Lifecycle

Every lead in InvestorFunnel carries a status, and those five statuses are the spine of your pipeline. Understanding them is what stops your lead list becoming a pile of names nobody is working.

The five statuses

  • New: just arrived, nobody has touched it. Every lead starts here.
  • Contacted: you have reached out. This says nothing about whether they replied.
  • Qualified: you have spoken and they are a real prospect worth spending time on.
  • Converted: they became a deal.
  • Dead: not a fit, or gone quiet for good.

Why the discipline matters

These statuses are not decoration. They drive your filters, they feed the dashboard counts you make decisions on, and they are how you find the leads nobody has called. A list where everything says New forever is indistinguishable from a list nobody is working, and you cannot tell the difference from the outside.

The status a lead is in should always answer one question: what needs to happen next? New means call them. Contacted means follow up. Qualified means push toward an appointment or an offer.

Tips to get the most out of it

  • Move a lead the moment you act, not at the end of the day. Status updated later is status not updated.
  • Mark Dead honestly and without guilt. A clean list of 40 workable leads beats 400 you are avoiding. Dead is reversible if they resurface.
  • Contacted does not mean done. It is the most abused status: leads park there and rot. Filter on Contacted weekly and either advance them or kill them.
  • Converted should match a real deal record. If a lead is Converted with no deal behind it, your numbers are lying to you.
  • Use status with the lead score, not instead of it. Status is where they are in your process, score is how promising they looked on arrival. Both matter.

Common problems

Everything is stuck on New. Nobody is updating status as they work. This is a habit problem, not a software one, and it silently breaks every report you have.

My dashboard counts look wrong. They are computed from status. Wrong statuses, wrong counts.

I cannot find a lead I know exists. Your status filter is probably excluding it. Clear the filters and search again.

Related

Lead Dashboard & Filtering · Lead Scoring · Notes & Activity Log · Deals Pipeline

Lead Dashboard & Filtering

The lead dashboard is where you actually work. Its whole purpose is to turn a long undifferentiated list into a short list of people to call right now, which is what the filters are for.

Filtering

  1. Go to Leads.
  2. Narrow by All Status to focus on one stage of your pipeline.
  3. Narrow by All Funnels to see one lead type, for example only sellers or only cash buyers.
  4. Sort or filter on AI Score to bring the most promising leads to the top.
  5. Clear resets everything when a filter combination returns less than you expected.

The aggregate figures

Above the list are portfolio-level numbers computed across your filtered leads, including Avg Equity / Lead, Avg Down Payment, Avg Cash / Investor, Down Payment Pool, and Equity Potential.

These are more useful than they first look, because they change as you filter. Filter to one funnel and you are looking at that audience's real buying power, which is how you decide which list is worth mailing again.

Working the list

Add a Lead Manually covers leads that arrive by phone or in person, so they get the same follow-up as form submissions. Bulk Skip Trace runs enrichment across a filtered set rather than one lead at a time, and Clean List Results shows what came back.

Tips to get the most out of it

  • Build one filter you use every morning, usually Status = New sorted by score descending. That is your call list, and it removes the daily decision of who to contact.
  • Filter, then skip trace. Tracing your whole database wastes credits. Trace the segment you are about to actually work.
  • Watch the aggregates change as you filter. Comparing Avg Equity between two funnels tells you which audience is worth more attention.
  • Log phone leads immediately. A lead that only exists in your notebook gets no automation, no scoring, and no follow-up.
  • Check Contacted weekly. It is where leads quietly go to die.

Common problems

The list looks empty. A filter is still applied from last time. Click Clear.

The aggregate numbers seem too low. They reflect your current filter, not your whole database. That is intended.

A team member cannot see Leads. The section requires the Leads permission, granted under Account → Team.

Related

Lead Lifecycle · Lead Scoring · Skip Tracing · Notes & Activity Log

Lead Scoring

Lead scoring puts a number on every lead as it arrives, so you can work the most promising ones first instead of working whoever submitted most recently. It is automatic and it happens before you ever look at the lead.

The three tiers

  • Hot: 80 and above.
  • Warm: 50 to 79.
  • Cold: below 50.

How a score is built

Every lead starts with a base score just for completing a form. On top of that, scoring rules are evaluated per funnel, so a seller lead and a cash buyer lead are judged on different criteria, which is the point. A rule can award points simply for a field being filled in, or only when that field matches a specific value. There is also a bonus for a lead who left additional comments, on the reasoning that someone who writes more is more engaged.

Because rules are per funnel, a score is only meaningful within a funnel. A 70 on your seller funnel and a 70 on your lender funnel are not the same thing.

Using it day to day

Sort your lead list by AI Score and work downward. The score is a triage signal, not a verdict: a cold lead with a real motivation in the comments beats a hot lead who filled every field and will not answer the phone.

Tips to get the most out of it

  • Score tells you call ORDER, not who to ignore. Cold leads still convert. They just convert less often per hour spent.
  • Compare scores within one funnel only. Across funnels the numbers are not comparable.
  • If everything scores the same, your rules are not doing any work. Rules that award points for merely filling a required field cannot separate anyone, because everybody filled it.
  • Score the fields that predict a close, such as timeline, motivation, and condition, rather than the fields that are simply present.
  • Read the comments on every hot lead before calling. The score got you to them; the comment tells you how to open.

Common problems

Every lead scores identically. Your funnel has few or no differentiating rules, so only the base score is applying.

A lead I know is excellent scored cold. The scoring rules never asked about whatever makes them excellent. That is a rules gap, not a scoring failure.

Scores are zero across the board. No scoring rules exist for that funnel yet.

Related

Lead Lifecycle · Lead Dashboard & Filtering · ML Lead Prediction · Lead Qualification Engine

Lead Qualification Engine

Qualification here is automatic at the front and manual after that. Every lead captured through a funnel form is scored out of 100 as it is saved, based on how they answered that funnel's questions, and tagged hot, warm or cold. From there the decision is yours: you work the lead and set Status. There is no separate qualification screen, because the engine's whole output is the number and the tag already on the leads list and the lead record.

How the score is built

A submission starts at 10 points for completing the form. Points are then added for the answers that signal a real, workable lead, using rules attached to that funnel type, so a seller and an investor are judged on completely different questions. Filling in the comments box adds 5. The total is capped at 100 and turned into a tier: Hot at 80 and above, Warm from 50 to 79, Cold below 50.

The tier is also written onto the lead as a tag, and it travels. New-lead alerts by text, Telegram and webhook all carry the score and the tier label, so you can triage from your phone before you open the app.

What it cannot do

You cannot edit the rules. Which answers earn points, and how many, is configured per funnel type behind the scenes and there is no screen for it, so you cannot add a rule or reweight one yourself. If the weighting is wrong for your market, raise it with support rather than hunting for a settings page.

The score is a snapshot, not a running total. It is calculated once, at submission, and nothing recalculates it later: replying to an email, answering the phone or reaching the offer stage will not move it. The one exception is a resubmission, where the same email address fills in a funnel form again and the score is recalculated from the newer answers.

Nothing is automated off the back of a score either. No lead is routed, blocked, deleted or dropped into a sequence for coming in cold. Qualification decides what you look at first; it does not act for you.

Using it day to day

  1. Go to Leads and click the AI Score column header to sort highest first.
  2. Work down from the top. Open a lead and read the badge next to their name, which shows the score out of 100 and the tier.
  3. Read the form answers under Lead Information before you call. The score tells you the order to call in, not what to say.
  4. After you have spoken to them, set Status: New, Contacted, Qualified, Converted or Dead. That field is your judgement, and it is what the rest of the CRM reports on.

The counters at the top of the leads list track Qualified and Converted, and the Status filter pulls up everything still sitting at New. Score gets a lead to the top of your list; status records what you found there.

Tips

  • Treat the score as a queue, not a verdict. A cold lead who answers the phone beats a hot lead who never does. The number ranks intent at the moment the form was filled in and nothing since.
  • Call every hot lead the same day. An 80-plus score means they answered your qualifying questions the way a motivated seller answers them, and that decays fast.
  • Do not write off cold. Cold usually means a short form rather than a bad lead. Put them in a sequence instead of deleting them.
  • Ask fewer, sharper questions on your forms. The score can only reward answers you collect, so a three-field form produces cold leads no matter who fills it in.
  • Move Status the same day you make contact. A board where everything sits on New makes the score useless, because you cannot tell what you have already worked.

What goes wrong

A lead I added by hand shows 0/100 cold. Manually created leads are never scored, because there are no form answers to score, and there is no way to score one after the fact. It is not a judgement on the lead: judge those on their notes and set Status yourself. Leads from a lead magnet download sit at 0 for the same reason.

Every lead from one funnel comes in at 15. That funnel is picking up only the 10 points for submitting and the 5 for a comment, which means no scoring rule is matching the fields it collects. Usually a mismatch between the form's field names and the rules for that funnel type. Raise it with support.

A lead engaged heavily but the score never moved. Expected: scores are set at capture only. Use the lead's notes and activity history to judge engagement, and move Status to reflect it.

An existing lead's score changed on its own. They submitted another form with the same email address. A resubmission overwrites the score, the tier tag and the stored answers with the newer ones.

A team member cannot see scores. They need the Leads permission to open the leads list at all, granted under Account → Team.

Related

Lead Scoring · Lead Lifecycle · Lead Dashboard & Filtering · Lead Prediction (AI Scoring)

Notes & Activity Log

Notes are the running record of what actually happened with a lead: what you said, what they said, and what you promised. They live on the lead's own page, in an activity timeline, so the history travels with the person rather than living in your head.

How to use it

  1. Open a lead from Leads.
  2. Add a note describing what happened.
  3. It appears in the timeline with the rest of that lead's history.

The timeline is not only your notes. It is the lead's full activity record, which is why it is worth reading top to bottom before any follow-up call rather than trusting memory.

What makes a useful note

A note that says "called" is worth almost nothing in three weeks. A note that says "called, wants to close before her lease ends in October, worried about the roof" is worth a deal. Write the reason and the next step, not the action you took.

Tips to get the most out of it

  • Write the note during or immediately after the call. Notes written later are shorter, vaguer, and lose the specific phrase that would have closed the deal.
  • Always record their motivation and their timeline. Those two facts drive every subsequent conversation.
  • Quote them. A seller's own words are far more useful later than your paraphrase, and they make excellent funnel copy.
  • End every note with the next step and when. Then pair it with a task so it actually happens.
  • Read the timeline before you dial. Thirty seconds of context beats opening with "remind me who you are".
  • Assume a colleague will read it. If a team member picked this lead up tomorrow, could they run the call from your notes alone? That is the bar.

Common problems

I cannot edit a note. Notes are add and delete, not edit, so the record stays a truthful log rather than something rewritten after the fact. Add a correcting note instead.

A note is missing. Check you are on the right lead. Duplicate leads from the same person are a common cause, and each keeps its own timeline.

Related

Lead Lifecycle · Tasks · Lead Dashboard & Filtering

Tasks

Tasks is a plain shared to-do list for your organization, kept inside the CRM so a follow-up can point at the lead or deal it belongs to. Use it for the work that does not fit anywhere else: chase a survey, send a contract, call someone back on Thursday. It is at Tasks in the sidebar.

What it cannot do

Nothing reminds you. A due date is a label and a filter, not an alarm: there is no email, no text and no in-app notification when a task falls due or goes overdue, and tasks do not appear on the dashboard. The Tasks page is the only place overdue work surfaces, so the board is worth exactly what your habit of opening it is worth. There are also no subtasks, attachments, comments or recurring tasks.

Creating a task

  1. Click New Task.
  2. Fill in Title. It is the only required field.
  3. Optionally add a Description, and set Status (Open, In Progress, Done, Cancelled) and Priority (Low, Normal, High, Urgent).
  4. Set a Due Date and pick an Assignee. The assignee list is your active team members.
  5. To attach it to a record, set Link To to Lead or Deal and choose from the picker that appears. Leave it on Nothing for a standalone task.
  6. Click Save Task.

A linked task shows the lead's name or the deal's property address in the Linked To column, and that text links straight through to the record.

Using it day to day

The list opens on Open, which hides everything done and cancelled. The other tabs are Assigned to Me, Overdue, Done and All. Within a view, tasks sort by due date soonest first and then by priority, so the top row of Open is genuinely the next thing to do.

Tick the checkbox at the left of a row to complete a task, untick it to reopen. The pencil edits and the trash deletes. Above the list, four counters track Open, Overdue, Due Today and Completed (7d). Overdue dates turn red and anything due today reads Today.

Tips

  • Open this page on a routine, not when you remember it. Nothing here chases you. Overdue and Due Today are the two counters to check.
  • Give every task a due date, even a rough one. Tasks with no date sort to the bottom and never reach the Overdue or Due Today counters, which is where good intentions go to die.
  • Link the task to the record. "Call back about the roof" means nothing in six weeks; linked to the lead it is one click to the full history.
  • Reserve Urgent for today. Priority only breaks ties between tasks due on the same date, so a board where everything is urgent sorts exactly like one where nothing is.
  • Use Cancelled instead of deleting. Cancelled tasks leave the open view but stay in All, so you keep a record of what you decided not to do.
  • Assign, do not just create. An unassigned task belongs to nobody and shows up in nobody's Assigned to Me.

What goes wrong

Assigned to Me is always empty for me. Tasks are assigned to team members, and the account owner is not a team member, so nothing can be assigned to the owner login. Owners should work from Open and Overdue instead.

The Assignee dropdown only offers "Unassigned". You have no active team members yet; add them under Account → Team. Deactivated members drop off the list, though a task already assigned keeps their name on it.

The lead or deal I want is not in the picker. Each picker holds only the 300 most recent records, so older ones do not appear.

There is no trash icon on my tasks. Team member logins cannot delete anything, by design. Set the task to Cancelled, or ask the account owner to delete it.

I ticked a task and the whole page reloaded. Expected. Completing or reopening refreshes the list so the counters and sort order stay correct.

A team member cannot see Tasks at all. The page needs the Tasks permission, granted under Account → Team.

Related

Notes & Activity Log · Deals Pipeline · Team Members & Access Control · Notifications

Seller Experience Portal

The Experience Portal gives a lead their own page showing where their deal stands. They get a link by text and email when they submit your funnel form, and from then on they see a progress timeline in your branding, whatever documents you need from them, and a message thread with you. There is no login: the link itself is the key. You drive all of it from the Experience Portal panel on the lead record.

What it can and cannot do

Stage names, the description under each stage and the FAQ list are fixed per funnel type and cannot be edited. What you control is the stage, an optional message, the action items you ask for, and optional dates for stages still ahead. Despite the name it is not seller only: seller, buyer, investor, lender, provider, apprentice, session and staff leads each get their own timeline, while contact, review, property and standalone leads have no portal.

Treat the link like a shareable document link, not a password-protected account: anyone holding it sees that lead's page. Documents the lead uploads are handled differently, streamed back to you through the app with an ownership check, so they never sit at a public storage URL someone could reach by guessing.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

How to set it up

There is nothing to switch on. On an eligible plan every new lead on a supported funnel gets a link the moment they submit, and their confirmation text and email already contain it. To take over a specific lead, open it, find the Experience Portal panel, and use Copy Link to send the link yourself or Preview to see the page as they see it. If the panel says there is no portal link yet, click Generate Link.

Using it day to day

The habit that matters is moving the stage as the deal moves. Pick it in Current Stage and click Save Stage. That advances their timeline and sends them a text and an email announcing the change, so a stage update doubles as your follow-up.

  • Action Required puts a highlighted banner at the top of their page. Tick the box, type what they need to do, click Set Flag.
  • Message to Lead is a standing note pinned to the page. Write it, click Send to Portal. Clear Message takes it down.
  • Action Items is your document checklist. Pick Upload Doc, Verify, Sign or Custom, add a title, optionally + Add instructions, then + Add Task. The lead clears these under Your Action Items with Upload Document or Mark as Complete, and uploads come back into the panel as a download link.
  • Milestone Dates puts an expected date against any stage still ahead. Fill them in, click Save Dates.
  • Messages is a two-way thread. Their replies notify you by text and email, yours notify them.
  • The stats line tracks Views, Last viewed, Stage updated and Link expires, with a chip reading Active, Gone Quiet or Not Opened.

If a lead has not opened their portal for three days, or never opened it within a day of submitting, you get a Follow up notification pointing at them. At most one every three days per lead, and they stop at the final stage.

Tips

  • Read the engagement chip before you call. Active means the call lands warm. Not Opened usually means the text never arrived, which is a phone number problem, not a motivation problem.
  • Use stage changes as your drip campaign. Every save sends a text and an email, so advancing the stage the day something happens puts you in their inbox without writing anything.
  • Ask for documents through Action Items, not email. The file lands attached to the lead, and they get one place to see what is outstanding.
  • Do not set milestone dates you are unsure of. A date on their page reads as a promise. Leave it blank rather than guess.
  • Watch the 30-day expiry on slow deals. Nothing warns the lead, they just hit an expired page. Regenerate and resend before that.
  • Regenerate if a link gets forwarded around. One click, and the copy in circulation stops working immediately.

What goes wrong

There is no Experience Portal panel on my lead. Either the funnel type has no timeline, which covers contact, review, property and standalone leads, or it is the plan. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

The lead sees "Link Expired". Links last 30 days from when they were issued. Click Regenerate Link and send the new one.

The lead sees "Link Not Found". The link was regenerated so their copy is dead, or the token was truncated when it was pasted. Send a fresh Copy Link.

Views stays at 0 even though I sent the link. The notification goes by text first and email second, so this usually means a wrong phone number plus a spam-filtered email. Send the link through a channel you know reaches them.

The lead cannot upload their document. Uploads accept PDF, JPEG, PNG and Word files up to 10MB, so an oversized phone photo or a HEIC image is refused. Ask for a PDF or a smaller JPEG.

I added a lead by hand and they never got a link. Manually created leads get a portal generated but no automatic text or email. Use Copy Link and send it yourself.

A team member cannot see the panel. It sits on the lead record, which needs the Leads permission, granted under Account → Team.

Related

Lead Lifecycle · Notes & Activity Log · Deals Pipeline · Custom Branding

Skip Tracing

Skip tracing takes a name and a property address and asks BatchData for the phone numbers and email addresses tied to that person. Use it when a lead came in with an address but no usable contact details, or when the number you have has gone dead. It runs on your own BatchData account, so every trace spends your credits.

What it cannot do

A trace needs both a name and an address; records missing either are skipped. It never writes to the lead by itself: results appear with a Save button and you pick what to keep. And the confidence percentage is BatchData's ranking, not a live line check, so a 90% number can still be disconnected.

How to set it up

  1. Go to Settings → Integrations and find the Skip Tracing (BatchData) card.
  2. Paste your key into BatchData API Key. It is in your BatchData dashboard.
  3. Save. The card should read Configured. Skip Trace buttons are active on lead detail pages.

Tracing one lead

  1. Open the lead and click Skip Trace next to the score badge.
  2. The Skip Tracing panel opens with Name and Address prefilled from the form answers. Correct them if they are partial.
  3. Click Run Skip Trace.
  4. Results appear under Phones and Emails, best first, each with a confidence percentage. Click Save on the one you want written onto the lead.

Every run is logged under History with the date, the name searched and how many results came back. Check it before re-tracing anyone: a repeat trace is a fresh charge and the earlier results are still there.

Tracing in bulk

  1. On Leads, filter to the group you plan to work, then tick the checkbox on each row.
  2. Click Skip Trace in the bar at the bottom of the screen.
  3. In Bulk Skip Trace, Run Now processes immediately and takes up to 50 leads. Select more than 10 and you also get Queue for Tonight, which holds up to 500 and runs overnight with no timeout risk.

Bulk results are saved to each lead's history rather than applied, so open a lead to pick a number. Overnight batches post an Overnight Skip Trace Complete notification with the traced, skipped and failed counts.

Tips

  • Filter before you trace. Tracing the whole database is the fastest way to spend credits on people you will never call. Trace only the segment on this week's call list.
  • Address quality decides your hit rate. Full US format works best: 123 Main St, Columbus, OH 43215. A street with no city or state comes back thin.
  • Take the top number and leave the rest. It all stays in History, so a wrong first number does not cost you a second trace.
  • Over ten leads, queue it. Run Now holds your browser open through the whole batch.
  • Fix the name first. A lead saved as "Owner", or with a blank surname, burns the credit and returns nothing.

What goes wrong

There is no Skip Trace button on the lead. No BatchData key is saved. The buttons stay hidden until one exists, rather than offering an action that cannot work.

"BatchData API key is not configured." The key is missing for this organization. In an overnight batch this is written onto every queued row as a failure, so the batch has to be selected and queued again once the key is fixed.

"Maximum 50 leads per batch." That is the Run Now cap. Select fewer, or use Queue for Tonight, which allows 500.

"Please wait 187 seconds before running another bulk skip trace." Immediate bulk runs are limited to one per organization every five minutes, as a guard against double-clicking an expensive job.

The history says "Missing lead address" or "Missing lead name." The form answers had nothing to work from. Add what is missing, then trace from the panel where you can type the address by hand.

It completed but found no phones. That is a real result, not an error, and it still cost a credit. Thin returns mean the name and address did not match one person in public records; if you have a mailing address as well, try that.

I cannot open Settings. Settings is owner only, so the account owner has to add the key. Team member logins are sent back to the dashboard.

A team member cannot see the leads list. They need the Leads permission, granted under Account → Team.

Related

Email Verification (ZeroBounce) · Email & Address Verification (XVerify) · Lead Dashboard & Filtering · Bulk Direct Mail

Email Verification (ZeroBounce)

ZeroBounce checks whether the email addresses already on your leads are real and deliverable. It is a cleanup pass over existing records, run on demand from the leads list, and the point of it is to stop you mailing dead addresses and damaging your sending reputation. It runs on your own ZeroBounce account, so each address you check spends a credit.

What it cannot do

It does not block anything at capture: a bad address is still saved, and ZeroBounce only labels it afterwards. It does not delete, unsubscribe or stop mailing anyone either, it writes a status and leaves the decision to you. Catch-all domains come back as Catch-All and are deliberately not treated as bad, because plenty of real business addresses live on one.

How to set it up

  1. Go to Settings → Integrations and find the ZeroBounce: Bulk Email Hygiene card.
  2. Paste your key into API Key. It is under API in your ZeroBounce dashboard.
  3. Save. The card should read ZeroBounce connected. Use the Clean List button in Leads to run bulk email hygiene.

Cleaning a list

  1. On Leads, filter to the group you are about to mail.
  2. Tick the checkbox on each row you want checked, up to 100 per run.
  3. Click Clean List in the bar at the bottom of the screen.
  4. In Clean List: Email Hygiene, click Run Clean List.
  5. Clean List Results gives you valid, invalid and skipped counts, plus a row per lead with the status returned.

For a single lead, use the envelope button on its row, or open the lead and click ZB Verify beside the email address. The status is stored and shows in brackets next to the address from then on.

Working the results

With a key saved, an Email Status filter appears on the leads list offering Valid, Flagged, Catch-All and Not Checked. Flagged collects the four statuses you should stop mailing: invalid, spam trap, abuse and do not mail. That filter is the whole feature. Run the clean, filter to Flagged, then either trace those leads for a better address or set them to Dead.

Tips

  • Clean the segment, not the database. Every address costs a credit whether it comes back good or bad, so check the list you are actually about to email.
  • Filter to Not Checked first. Re-checking an address you cleaned last month spends a credit to learn nothing.
  • Treat Catch-All as unknown, not good. The domain accepts everything, so the check cannot confirm that specific mailbox exists. Mail them, but do not read quiet as proof.
  • Clean before you load a sequence, not after. The reputation damage from a bad list is done on the first send.
  • A flagged address is not a dead lead. Skip trace them for a better email before you write the person off.

What goes wrong

The Clean List button is not there. No ZeroBounce key is saved. The button only appears once a key exists.

"Maximum 100 leads per batch. Please select fewer leads." ZeroBounce takes 100 addresses per call. Split a bigger list into runs of 100.

"ZeroBounce API key is not configured." No key was ever saved. Note that leaving the API Key field blank keeps whatever is already stored, so an empty-looking field does not prove there is no key.

Statuses came back as "unknown". ZeroBounce could not be reached, or returned nothing for that address. Verification fails open on purpose so no lead is harmed. Re-run the batch later.

My skipped count is high. Leads with no email address at all count as skipped. That is usually phone-only intake, not a failure.

There are two identical envelope buttons on every row. With both ZeroBounce and XVerify connected, each gets a button. Hover to tell them apart: Verify email via ZeroBounce and Verify email via XVerify.

I cannot open Settings. Settings is owner only, so the account owner has to add the key.

A team member cannot run Clean List. It needs the Leads permission, granted under Account → Team.

Related

Email & Address Verification (XVerify) · Skip Tracing · Lead Dashboard & Filtering · Email Sequences

Email & Address Verification (XVerify)

XVerify checks a lead's email address, and their mailing address if they gave one, at the moment they submit a funnel form. If the email is definitively bad the submission is rejected and the visitor is asked to fix it, so the junk never reaches your list. This is the front door: once a key is saved it runs on every submission automatically, and every submission spends a credit from your own XVerify account.

What it cannot do

It does not verify phone numbers. The only two checks wired into InvestorFunnel are email and US mailing address, and there is no phone or line-type validation anywhere in the platform, so a bad number still reaches your dialer and SMS lists. It also cannot clean the leads you already have, because it only runs on new submissions: use ZeroBounce for the back catalogue. And it will not block a catch-all domain, because too many real leads use one.

How to set it up

  1. Go to Settings → Integrations and find the XVerify: Email & Address Verification card.
  2. Paste your key into API Key. It is in your XVerify dashboard under API Settings.
  3. Save. The card should read XVerify connected. Emails and addresses are verified in real time on lead form submission.

There is nothing else to configure. No thresholds, no per-funnel switches: the moment a key exists, every funnel form and every property submission is checked.

What happens on a submission

The email is checked first. If XVerify calls it invalid, disposable or a spam trap, the form returns Please enter a valid email address. and no lead is created. A running total of rejections shows on the settings card as the number of submissions blocked all time.

The mailing address is only checked when the form collected a street, a city and a state. If that address is called invalid, the form returns The address you entered could not be verified. Please check and try again.

If XVerify cannot be reached, both checks pass. It waits five seconds at most and then lets the lead through, on the principle that a network problem should never cost you a real seller.

Using it day to day

The blocked count on the settings card is your only dashboard, so read it as a ratio. A few hundred blocks against a few thousand submissions is bot traffic being filtered, which is what you want. A blocked count that is a large share of your submissions means real people are being turned away, and that is worth investigating.

You can also check an existing lead on demand: use the envelope button on its row in the leads list, or open the lead and click XV Verify beside the email address.

Tips

  • This is your highest-volume credit consumer. Skip tracing and a list clean only run when you click something; this fires on every submission, bots and test fills included. Size your balance against traffic, not lead count.
  • Run both services, for different jobs. XVerify guards the front door, ZeroBounce cleans the leads already in the database. They are not alternatives.
  • Connect it before you buy traffic. The value is in the leads it stops you paying to store, mail and chase.
  • Watch the blocked count after any form change. Add an address block to a funnel and the address check starts firing, which can push rejections up overnight.
  • Keep a manual route open. A rejected submission creates nothing at all, so if a caller says the form would not accept them, add them with Add a Lead Manually.

What goes wrong

A real lead says the form called their email invalid. XVerify judged it undeliverable, usually a typo in the domain, so ask them to retype it. If it keeps happening with addresses you know are good, the check is too aggressive for your audience and you should stop using it.

A lead says their address could not be verified. The address check fires only when street, city and state are all present, and rejects anything XVerify cannot match to a deliverable location. New construction and rural routes are the usual false negatives; take those details by phone.

The blocked count is climbing but I am not losing leads. That is the feature working. Disposable-address bot traffic is most of what it catches.

I saved a key and nothing seems to be checked. Verification is silent when it passes, which is most of the time. The card reading XVerify connected is your confirmation.

I want to turn it off. There is no off switch, and blanking the API Key field does not clear the stored key: an empty field means "leave the saved key alone". Contact support to have it removed.

I cannot open Settings. Settings is owner only. Team member logins are redirected to the dashboard.

Related

Email Verification (ZeroBounce) · Skip Tracing · Form Builder & Field Types · Lead Lifecycle

Lead Consent & Compliance Evidence

What InvestorFunnel Records on Every Lead

Every lead that comes in through one of your funnels, or through the Leads API, carries a record of how it arrived. You do not have to turn any of this on:

  • IP address of the person who submitted the form
  • Browser (the user agent string)
  • Landing page: the first page of your funnel they opened, not the form step they finished on
  • Referrer: the outside site that sent them, when there was one
  • Consent time and consent source (form submission, the TCPA checkbox, or an API import)
  • Consent wording: the exact text shown next to the checkbox, when a funnel has the TCPA checkbox turned on
  • UTM source, medium, and campaign, which also feed your attribution reports

All of it appears on the lead’s Consent & Compliance card, just under the submitted form data on the lead detail page, and the key fields are included in your CSV export.

Why It Matters

If you call or text sellers and buyers, the Telephone Consumer Protection Act (TCPA) puts the burden on you to show the person agreed to be contacted. A dispute usually comes months later. Having the time, IP, page, and wording on the lead record means the answer is one click away instead of a search through old spreadsheets.

Certificate Services (Optional)

Two third-party services go a step further and issue an independent certificate proving a real person filled out a real form. Neither is required. They matter most if you buy leads, sell leads, or run paid traffic at volume and want evidence a vendor cannot dispute. Both live under Settings → Analytics → Lead Compliance.

TrustedForm

TrustedForm, by ActiveProspect, records a session replay of the form fill and issues a certificate URL. Turning it on takes one checkbox:

  1. Open Settings → Analytics and scroll to Lead Compliance.
  2. Check Enable TrustedForm certificates and save.

From then on every funnel page loads the TrustedForm script, and each new lead stores its certificate URL, shown as a link on the Consent & Compliance card. No account is needed for that part.

Claiming certificates. TrustedForm keeps an unclaimed certificate for 72 hours, then discards it. To retain certificates long term you claim them from your own ActiveProspect account, which is a paid service billed by ActiveProspect, not by InvestorFunnel. If you only need a same-week check that a lead was real, the link on the card is enough.

Jornaya LeadiD

Jornaya issues a LeadiD token for each form fill and keeps the audit trail behind it. Unlike TrustedForm, it needs an account before the script does anything:

  1. Sign up with Jornaya and create a campaign for your funnels.
  2. Copy the campaign key Jornaya gives you.
  3. Open Settings → Analytics → Lead Compliance, paste it into Jornaya LeadiD Campaign Key, and save.

Every funnel page then loads the LeadiD script and each new lead stores its token. Looking a token up, or pulling the audit data behind it, happens in your Jornaya account.

Leave the key blank to turn Jornaya off. Clearing the TrustedForm checkbox turns that off too. Leads already captured keep their certificates either way.

Leads You Send Through the API

If you push leads in from another system, send the same evidence along with the lead: ip_address, user_agent, landing_page_url, referrer_url, tcpa_text, consent_at, trustedform_cert_url, and jornaya_leadid. They land on the same card. The Leads API article covers each field. Send the consumer’s IP and consent time, not your server’s, since a lead pushed from a server otherwise records the server as the consumer.

Where to Find It

  • Lead detail page: the Consent & Compliance card, hidden until a lead has at least one of these values.
  • CSV export (Settings → Data Export): External ID, Consent At, Consent IP, Consent Source, TrustedForm Cert, and Jornaya LeadiD columns.
  • API: every field reads back on GET /api/v1/leads/{id}.

Funnels & Forms

Funnel Types

InvestorFunnel ships with a set of purpose-built funnels, each written for one specific audience rather than one generic template you rebrand. Picking the right one is the first decision, because it determines the copy, the form fields, and the follow-up.

The funnels available

The core set covers seller, buyer, investor, lender, tenant, apprentice, referral, webinar, deal, sales letter, property, provider, staff, session, and review.

Which of these you can enable depends on your plan, so the list you see in Funnels may be shorter than the list above. Locked ones show an upgrade prompt rather than being hidden.

Choosing the right one

Match the funnel to who is filling in the form, not to what you want out of it. A homeowner who needs to sell fast and a cash buyer looking for inventory need different headlines, different questions, and different follow-up. Running both through one funnel means the copy is wrong for both of them.

The funnel type also labels every lead it produces, which is what makes your filtering, scoring and notification routing work later. Using the wrong funnel does not just cost conversion, it mislabels your data permanently.

Tips to get the most out of it

  • Start with one funnel and get it working. Five half-finished funnels generate nothing. The seller funnel is usually the right first one, because that is where deals come from.
  • Do not repurpose a funnel for a different audience. Build the right one instead. The lead labelling alone is worth it.
  • Enable a funnel only when you have traffic for it. A live funnel with no visitors is not progress, it is just something else to maintain.
  • Clone rather than rebuild when you want a variant for a different market or channel.

Common problems

A funnel I want is locked. Plan gating. See Account → Plan.

Leads are arriving labelled with the wrong funnel type. They came through a different funnel than you expect. Check which URL your traffic is actually landing on.

My funnel is live but getting no leads. Enabled is not the same as promoted. See Sharing Your Funnels.

Related

Funnel Builder · Funnel Page Content & Branding · Sharing Your Funnels · Form Builder & Field Types

Funnel Builder

The Funnel Builder is a wizard that creates a new multi-step funnel from a few answers, instead of you assembling pages by hand. It is how you get a working funnel for a new audience or a new market in minutes.

What the wizard asks

  1. Audience: who this funnel is for. This drives the copy and the form fields.
  2. Copy Angle: the argument the page makes.
  3. Funnel Theme and Choose a style: the look.
  4. Entry Headline and Display Name.
  5. Booking Page and Appointment Type, if you want visitors to book.
  6. Email Integration and Analytics & Tracking, which will point you at Settings if a credential or Pixel ID is not connected yet.
  7. Compliance: whether the form requires consent to be contacted.

On completion it drops you back into Funnels with the new funnel ready to edit.

What it does and does not decide

The wizard makes the initial choices. Everything it produces is editable afterwards through the normal funnel editor, so a wizard answer you regret is not permanent.

One thing is worth getting right first time: the consent setting. It is set here during the build, and turning it on later for an already-built funnel is not currently possible from the funnel itself. If the form collects a phone number and you intend to call or text, enable it now.

Tips to get the most out of it

  • Enable consent during the build if the form takes a phone number. This is the single answer with real consequences, because calling or texting without it is a compliance risk and it cannot be switched on afterwards.
  • Connect your email and tracking credentials before you run the wizard. Otherwise it sends you to Settings mid-build and you lose your place.
  • Read every generated page before enabling it. The output is a strong first draft, not finished copy, and your name is on it.
  • Use one funnel per market or channel rather than one funnel trying to serve everyone. The wizard makes this cheap enough that there is no excuse.
  • Name it something you will recognise in six months. "Seller" is not a name once you have four of them.

Common problems

The wizard rejects my slug. Slugs matching an existing core funnel directory are not allowed. Pick something distinct.

A step says "Connect in Settings". That credential is not configured yet. You can finish the funnel and connect it afterwards.

I need consent on a funnel I already built. There is currently no per-funnel setting for that outside the wizard. Rebuilding with consent enabled is the reliable route.

Related

Funnel Types · Funnel Page Content & Branding · Form Builder & Field Types

Funnel Page Content & Branding

Every funnel page is editable: the words, the colors, the images, and the meta tags. Nothing is hardcoded, so a funnel should end up sounding like you rather than like a template.

Two ways to edit

There is a form-based editor in Funnels, and there is an on-page editor that lets you click directly on the live page and change text in place. The on-page editor is usually faster for copy, because you see the line in context instead of guessing which field it maps to. The form editor is better for the settings that are not visible text, such as meta tags.

What you can change

  • Hero Headline and Hero Subheadline: the top of the page and the biggest lever on conversion.
  • Benefits: the bullet points that carry the argument.
  • CTA Box Title / Subtext and CTA Button Text: the ask.
  • Accent Color, Color Theme, Background Image, and Overlay Color: the look. The overlay is what keeps text readable over a photo.
  • Meta Title and Meta Description: what shows when the link is shared or found in search.
  • Page Name and Step Label: how the page is identified in your admin and in multi-step funnels.

Tips to get the most out of it

  • Change the headline first and change nothing else. It moves conversion more than every color setting combined, and editing one thing at a time is the only way to know what worked.
  • Write benefits as outcomes, not features. "Close in 14 days" beats "fast process".
  • If you use a background photo, raise the overlay. Unreadable hero text over a pretty image is the most common self-inflicted funnel problem.
  • Set the meta tags. A funnel link shared into a text message or a Facebook group with no meta description looks broken, and that is often the first impression.
  • Hard refresh after editing. A stale tab showing old copy causes more false alarms than any actual bug.

Common problems

My change did not appear. Hard refresh the page. If it still has not, confirm you saved and that you were editing the right step of a multi-step funnel.

Hero text is unreadable over my background image. Increase the Overlay Color opacity or pick a less busy photo.

A team member cannot edit funnels. Editing requires the Funnels permission, under Account → Team.

Related

Funnel Types · Funnel Builder · Form Builder & Field Types · Sharing Your Funnels

Form Builder & Field Types

The Form Builder controls what a funnel actually asks a visitor, field by field. It is the highest leverage screen in the whole system, because every extra field costs you submissions and every missing field costs you the ability to qualify.

Field types

Available types are text, email, phone, tel, number, textarea, select, checkbox, radio, date, url, file, and hidden.

Adding a field

  1. Open the form and go to the Fields tab.
  2. Click Add Field.
  3. Set the Label the visitor reads and the Field Key the data is stored under.
  4. Pick the Field Type. For select, radio, or checkbox, fill in Options.
  5. Add a Placeholder if an example would help.
  6. Save.

Beyond fields

The Integrations tab connects the form to an email list, using a List ID. A Redirect URL after submission sends the visitor somewhere specific instead of the default thank you page. You can also style the form with Accent / Button Color, Background Image, and Overlay Color.

Each form shows Page Views and Conversion Rate, which is the number to watch after any change you make.

Tips to get the most out of it

  • Ask for the least you need to make the next call. Name, phone, address is usually enough. Everything else you can learn on the phone, and every extra field loses people.
  • Choose the right type for the keyboard. A phone field gives a mobile visitor a number pad. A text field gives them a full keyboard and a worse experience, and most of your traffic is mobile.
  • Use select or radio for anything you will filter or score on later. Free text cannot be segmented reliably.
  • Keep Field Keys stable. Renaming a key after submissions exist splits your data across two names.
  • Add one open textarea at the end. "Anything else we should know?" is where sellers volunteer their real motivation, and it earns a lead-scoring bonus.
  • Watch Conversion Rate after every change. Adding a field almost always lowers it. Make sure the data is worth the cost.

Common problems

A select field shows no choices. Its Options are empty.

Submissions arrive with a field missing. Check the Field Key was not renamed after the form went live.

Conversion rate dropped after I edited the form. That is usually a real cause and effect. Remove the field you added and compare.

The integration is not receiving leads. The Integrations tab will show Not configured if no List ID is set.

Related

Funnel Page Content & Branding · Lead Scoring · Lead Magnets

Sharing Your Funnels

A funnel is only worth building if people reach it. This covers the URLs a funnel exposes and the ways to put them in front of someone.

Your funnel URLs

On the platform domain, each funnel lives at your account slug followed by the funnel name, for example investorfunnel.com/yourslug/seller. If you have connected your own domain, the same funnel is reachable directly on it, for example yourdomain.com/seller, which is the version to use on anything printed or paid.

Ways to share it

  • Paste the link into a text, an email, a DM, or a social post.
  • QR Code: generate one from the funnel and put it on a yard sign, a door hanger, a postcard, or a business card. It closes the loop between physical marketing and your CRM.
  • Paid traffic: point ads at the funnel rather than your homepage, so the visitor lands on the exact offer the ad promised.

Tips to get the most out of it

  • Use your own domain for anything you pay for or print. It is more trustworthy, it is shorter, and it does not advertise the platform you use.
  • Send people to the specific funnel, never the homepage. A homepage makes the visitor start over and work out where to go, and most will not.
  • Set the meta tags before you share anything. The link preview is the first impression in a group or a text thread.
  • Use a distinct funnel per channel when you can. Cloning a funnel with Duplicate Funnel and giving it a New Slug is the simplest attribution there is: the URL tells you where the lead came from.
  • Open your own link on a phone before spending money on it. Most traffic is mobile and most problems are only visible there.

Common problems

My funnel URL returns nothing. The funnel is probably not Enabled. Check its status in Funnels.

The link works on the platform domain but not on mine. The custom domain is not fully connected yet. See Connecting Your Domain.

The link preview shows the wrong title or no image. Set Meta Title, Meta Description, and a hero image on the funnel page.

Related

Connecting Your Domain · Funnel Page Content & Branding · Funnel Types

Lead Magnets

A lead magnet is something worth giving an email address for. It is how you capture visitors who are interested but not ready to talk yet, which is most of them.

The types available

  • PDF Guide and Complete Guide: written material.
  • Interactive Calculator: a tool the visitor uses, which tends to hold attention longer than something they download and forget.
  • Template / Spreadsheet: something they will actually reuse, which keeps your name in front of them.

Setup

  1. Go to Lead Magnets and click New Lead Magnet.
  2. Give it a name and pick its type.
  3. Attach it to the funnel it belongs on, for example the Buyer Funnel or the Investor Funnel.
  4. Set it Active.
  5. Use the Landing Page Link to share it directly.

Using it day to day

Each magnet tracks Downloads, Conversions, and a Conversion Rate. Those three numbers together tell you whether the offer is attractive: high page views with a low conversion rate means the promise is not compelling enough, not that the traffic is bad.

Tips to get the most out of it

  • Solve one specific problem, not a general one. "What your house is worth in Franklin County without a realtor" beats "Guide to selling your home".
  • Match the magnet to the audience. A cash buyer wants a deal list or a calculator. A distressed seller wants to know their options. The same PDF for both converts poorly for each.
  • Calculators usually outperform guides. A visitor who enters their own numbers is telling you they are serious, and you learn something about them.
  • Make it genuinely useful. The magnet is your first demonstration of competence, and a thin PDF teaches them not to open your emails.
  • Deactivate rather than delete when retiring one, so your historical download numbers stay intact.

Common problems

Nobody is downloading it. The offer is not specific enough, or it is buried too far down the page. Fix the promise first.

Downloads are high and conversions are low. People want the file but not the conversation. The magnet is attracting the wrong audience, or is unrelated to what you actually sell.

It does not appear on my funnel. Check it is Active and assigned to that funnel.

Related

Form Builder & Field Types · Funnel Types · Email Sequences

Properties

Adding & Editing Properties

A property in InvestorFunnel is not a listing entry, it is a public sales letter page for one specific deal, with its own URL you can send to a buyer or print on a sign. This page is where you create and manage them.

Creating one

  1. Go to Properties and click New Property.
  2. Fill in Property Info: Property Type, Bedrooms, Bathrooms, Basement, Garage, Lot Size, and Property Features.
  3. Fill in Financials. Which fields matter depends on the deal: Asking Price and Repair Estimate for a cash deal, Down Payment, Monthly Payment and Rent Credit for owner finance or rent to own, Assignment Fee for a wholesale.
  4. Set Deal Settings for the deal type you are running, such as Cash Deal, Owner Finance, Rental, or Investor / Wholesale.
  5. Write the page content and add images. Those have their own articles.
  6. Save as a draft, or set it to Published when it is ready to be seen.

Using it day to day

The list separates Drafts from published properties, so you can build a page over several sittings without it being live. Edit Property reopens any of them.

Two settings worth knowing: Link to Deal connects the page to a record in your deals pipeline, and Phone Number (for this property) overrides your usual number for this page only, which is how you track response per property.

Getting it in front of people

Beyond sending the link directly, a property can be promoted with Featured on Funnel Pages and Show on Homepage. You can also attach an Appointment Type so an interested buyer books straight from the page, and set a Booking Redirect for where they land afterwards.

Tips to get the most out of it

  • Build as a draft, publish once. A half-finished page that went live and got shared is not something you can un-share.
  • Use a per-property phone number. It is the cheapest attribution you will ever set up: you know exactly which property generated the call.
  • Always Link to Deal. Otherwise the page and the deal live in separate worlds and your pipeline stops reflecting reality.
  • Only fill the financial fields that fit the deal. A cash offer page showing an empty Monthly Payment row reads as an unfinished page.
  • Attach an Appointment Type. A buyer who has to email you to arrange a viewing is a buyer you might lose.

Working with properties requires the Properties permission, granted under Account → Team. A team member without it will not see the section.

Common problems

My property page is not visible to anyone. Two causes, in this order: it is still a draft rather than Published, or its visibility is set to Private, which requires a lockbox code. See Lockbox Access.

The page shows blank rows or empty sections. Those fields are empty. Leave a section out rather than half-filling it.

I cannot see the Properties section at all. You are missing the Properties permission.

Related

Property Detail Pages · Property Gallery · Lockbox Access · Deals Pipeline

Property Gallery

Photos sell a property page more than the copy does. This covers every image slot on a property, and what each one is actually for.

The image slots

  • Hero Image URL: the big image at the top. This is the one that decides whether someone keeps reading.
  • Photo Gallery: the set of images a visitor can browse.
  • Selected feature image: the image used when the property is shown as a card elsewhere, for example featured on a funnel page or your homepage.
  • Property Video URL: a walkthrough video, which does more work than any still photo.
  • Page Background: the backdrop behind the page content.

How to add them

  1. Open the property and go to Images.
  2. Upload your photos, or paste a direct image URL where a URL field is offered.
  3. Pick your Selected feature image.
  4. Save.

Tips to get the most out of it

  • Lead with the best exterior shot, not the front door. The hero image is doing the job of a headline.
  • Order the gallery like a walkthrough: outside, living space, kitchen, beds, baths, then problems. A buyer who can follow the house mentally trusts the page more.
  • Do not hide the damage. On a distressed deal, showing the bad room filters out buyers who were never going to close and builds credibility with the ones who will.
  • Add a video if you have one. Even a phone walkthrough outperforms a perfect photo set for serious buyers.
  • Resize before uploading. Camera-original files make the page slow, and a slow property page loses mobile visitors before the hero image even renders.

Common problems

An image does not appear. If you pasted a URL, it must be a direct link to the image file itself, not to a page that displays it. Uploading is more reliable.

The wrong image shows on a card elsewhere. That is the Selected feature image, which is a separate setting from the hero.

The page loads slowly. Almost always oversized photos.

Related

Adding & Editing Properties · Property Detail Pages · Media Library

Property Detail Pages

The property detail page is what a buyer or seller actually lands on. It is built as a sales letter, not a listing sheet, which is why it has an opening, a story, numbers, and one clear ask rather than a table of specs.

The sections, in the order a visitor reads them

  • Headline: the promise or the hook.
  • Opening Copy: why this deal exists and why now.
  • Sales Letter Content: the body, where the deal gets made.
  • How It Works / Why This Deal: the mechanics, especially for creative terms a buyer may not have seen before.
  • Numbers Table and Property Details: the figures, laid out to be skimmed.
  • Property Features: the specifics.
  • FAQ Section: the objections you already know are coming.
  • CTA Button Text and Form Subtitle: the ask.
  • Disclaimer: the fine print.

Beyond the copy

Set Meta Title and Meta Description so the page looks right when the link is shared or found. A Map Link gives location context, and a QR Code lets you put this page on a yard sign, a postcard, or a door hanger.

Tips to get the most out of it

  • Write it like a letter to one person, not an announcement to a market. "You" beats "buyers".
  • Let the Numbers Table do the heavy lifting on a good deal. Serious buyers scroll straight to it. Make it complete and honest.
  • Use How It Works whenever terms are creative. Owner finance and rent to own lose people through confusion far more often than through price.
  • Fill the FAQ with real objections from real calls. Every objection you answer on the page is a call you do not have to take.
  • One ask, not three. Make the CTA a specific action, "Check availability" or "Get the numbers", instead of "Submit".
  • Use the QR code on physical marketing. It closes the loop between a sign in a yard and a lead in your CRM.

Common problems

The page looks sparse. Empty sections still render their headings. Fill them or leave the content out entirely.

A shared link shows the wrong title or no image. Set Meta Title, Meta Description, and a Hero Image.

Visitors reach the page but never enquire. Usually the CTA is generic or the numbers are missing. Those two fix most of it.

Related

Adding & Editing Properties · Property Gallery · Lockbox Access

Public Listings Page

The Public Listings Page is a curated list of your deals behind a single access code, meant for people you already have a relationship with: your cash buyer list, your VIP investors. It is deliberately not a public browse-everything page.

How it differs from a property page

A property detail page is one deal with its own URL, which you send to one person. The Listings Page is many deals in one place, gated by a code. Use property pages for outreach on a specific deal, and the Listings Page as the standing destination you give to your buyer list once.

Setup

  1. Go to Settings → Property Pages. This is configured for the whole account, not per property.
  2. Set the page-level access code.
  3. Publish the properties you want to appear.
  4. Share the page link and the code with your buyer list.

Tips to get the most out of it

  • Treat the code as a membership, not a password. Handing it to someone is how you make a buyer feel like an insider, which is most of the value here.
  • Rotate the code when your list changes materially. Codes travel, and a code that has spread everywhere is just a public page with extra steps.
  • Keep it curated. Six real deals beats thirty stale ones. A list full of sold properties trains buyers to stop checking.
  • Announce updates. The page does not notify anyone. Emailing your list when you add a deal is what makes it get looked at.

Common problems

The page is empty. No properties are published, or none are set to appear here. Check both.

A buyer says the code does not work. Confirm the current code in Settings → Property Pages; if it was rotated, the old one stops working immediately.

A property I expected is missing. It is probably still a draft, or set to Private with a lockbox code.

Related

Adding & Editing Properties · Lockbox Access · Property Detail Pages

Lockbox Access

Lockbox access makes a single property page private: the page exists at its URL, but a visitor has to enter a code to see it. It is how you run a pocket listing without either hiding it or publishing it to the world.

Setup

  1. Open the property and find Visibility.
  2. Choose Private (lockbox code required) instead of Public (visible to everyone).
  3. Set the lockbox code.
  4. Save. Anyone reaching the URL now has to enter the code before they see the page.

When to use it

Private is the right setting when a deal should reach a specific group and nobody else: your best buyers first, an off-market deal a seller does not want advertised, or a property you want to test on a small list before going wide. Switch it to Public later and the same URL opens up, with no need to rebuild the page.

Tips to get the most out of it

  • Use a different code per property. One shared code means one leak exposes everything.
  • Private first, public later, is a real strategy. Give your top buyers a 48 hour head start, then flip it to Public. They notice the preferential treatment, and it costs you nothing.
  • Respect a seller who asked for discretion. Private is the setting that lets you honor that and still market the deal properly.
  • Do not treat it as security. It is a courtesy gate, not protection for sensitive information. Anyone with the code can pass it on.

Common problems

A buyer gets an error entering the code. Codes must match exactly. Re-check the code on the property, and resend it rather than reading it out.

The page is public when I wanted it private. Visibility is a separate setting from Published. A property can be published and public, or published and private.

I forgot the code. Open the property and read it, or set a new one. Existing recipients will need the new code.

Related

Adding & Editing Properties · Public Listings Page · Property Detail Pages

Deals

Deals Pipeline

The deals pipeline tracks a property from the moment you decide it is worth pursuing to the day it closes or dies. Where leads are about people, deals are about properties and numbers.

The five stages

  • Draft: you are working the numbers. Nothing has been presented.
  • Offered: an offer is out and you are waiting.
  • Accepted: they said yes. Now the clock is real, and this is where deals are most often lost through inattention.
  • Closed: done.
  • Dead: it did not happen.

How it relates to leads

A lead becomes a deal when there is a specific property and specific numbers. The lead stays a lead: mark them Converted so your lead reporting matches reality. One person can produce several deals over time, which is why the two are tracked separately.

Tips to get the most out of it

  • Create the deal when you make the offer, not when it is accepted. Your offer-to-accepted ratio is one of the most useful numbers in the business and you can only see it if offers are recorded.
  • Accepted is the dangerous stage. It feels like a win, which is exactly why deals stall there. Give every accepted deal a task with a date.
  • Mark Dead promptly and note why. The pattern in your dead reasons is the most honest feedback you will get about your buy criteria.
  • Link the deal to its property page. Then the marketing and the deal record stay in step.
  • Run the numbers before Offered, not after. Use the Deal Analyzer while it is still a draft.

Common problems

My close rate looks impossible. Offers are not being recorded, so you are dividing by the wrong number. Only deals that reached Offered count.

Deals sit in Accepted forever. Nothing is chasing them. That is what tasks are for.

A lead is Converted but there is no deal. The deal record was never created, so your pipeline understates your business.

Related

Deal Analyzer · Lead Lifecycle · Adding & Editing Properties · Tasks

Deal Analyzer

The Deal Analyzer takes a property address and returns a full AI-backed analysis: an estimated value, a deal score, and a list of flags worth knowing before you spend more time on it. It is a triage tool, not an appraisal.

How to use it

  1. Open a lead and click through to the analyzer, or go to it directly.
  2. Enter the property address.
  3. Fill in the property: Property Type, Beds, Baths, Sq Ft, Year Built, and Condition on a 1 to 5 scale.
  4. Enter the Asking Price if you have one.
  5. Click Analyze Deal.
  6. Read the score and the Deal Flags. If it holds up, click Add Deal to push it into your pipeline.

Reading the output

You get an Offer Range with conservative, moderate and aggressive figures. Those are outputs, not a setting you choose beforehand. The score is a fast comparative signal, useful for ranking ten leads against each other. Deal Flags are the part to actually read: they surface the specific concerns behind the number, which is what tells you whether to walk or dig deeper.

Tips to get the most out of it

  • Use it to triage, never to decide. It is a first filter that saves you from driving to a property that was never going to work. It is not a substitute for your own comps.
  • Read the conservative end of the offer range first. If the deal only works at the aggressive end, that is your answer.
  • Enter a real Asking Price and ARV when you have them. Leaving them blank forces the model to guess and the score gets much softer.
  • Compare scores within one market, not across markets. The number is most useful relatively.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

"AI not configured". The analyzer runs on your own AI provider key. Add it under Settings → Integrations.

The analysis looks wrong for the area. Check the address resolved to the right property, then check Condition and Year Built are right, since both move the valuation more than anything else on the form.

Related

Deals Pipeline · AI Deal Underwriting · Lead Scoring

AI Deal Underwriting

Underwriting is the part of the Deal Analyzer that produces numbers: what a property is worth fixed up, what repairs will cost, the most you should pay, and a defensible offer range. Deal Analyzer covers running an analysis. This article is about what comes back, and how to make it worth trusting.

What the model is actually doing

The underwriter is instructed to behave like a conservative analyst: underestimate value, overestimate repairs, flag low confidence in unfamiliar markets. Every figure comes back with reasoning attached, and a figure with a thin explanation is one that was guessed. It works from what you type plus general knowledge of US markets, not an appraisal or an MLS feed, so treat it as triage: fast, cheap, directionally useful, not evidence.

Reading the report

  • ARV Estimate: after-repair value, with a low and a high. Read the width of the range before the midpoint. Wide means low confidence.
  • Repair Estimate: a total plus a condition assessment and a list of major items. If the major items do not match what you saw, the ARV is standing on the wrong assumptions too.
  • MAO (70% Rule): ARV multiplied by 0.70, minus repairs. Arithmetic, not judgment, so if your market or exit does not use 70 percent, recompute it from the ARV and repair figures.
  • Offer Range: conservative, moderate, aggressive. Open at conservative. If a deal only works at aggressive, it does not work.
  • Deal Flags: green and red. The most useful part of the report, and the part to read before the score.
  • Market Summary & Strategy: the suggested play (wholesale, fix and flip, buy and hold, BRRRR, subject-to, creative finance) plus a monthly rent estimate.
  • Key Metrics: price per square foot, estimated cap rate, cash-on-cash return. Sanity checks, not underwriting.

The score runs 0 to 100: under 31 poor, 31 to 50 below average, 51 to 70 decent, 71 to 85 good, 86 and up exceptional. Use it to rank leads against each other, never to decide.

Making the analysis deeper

Give it real inputs. Beds, baths, square feet, year built, condition, and asking price all feed the prompt, and every blank field is one the model invents. Condition (1-5) matters most, because it drives the repair estimate, which drives MAO.

Add real comps. Paste a RentCast API key into the RentCast card under Settings → Integrations and live rental and sale comparables for the address are pulled into the analysis instead of the model working from recall. This is the single biggest accuracy upgrade available, and RentCast has a free tier. Once saved, the card confirms comps are active in AI Deal Underwriting.

Tips to get the most out of it

  • Read the reasoning before the number. If the ARV reasoning does not name a neighborhood or a comparable, treat the figure as a placeholder.
  • Run the same address twice at different conditions. The spread between a 2 and a 4 tells you what your walkthrough is worth, and where to point your inspection.
  • Compare within one market. Scores are most reliable relative to each other, same city, same week.
  • Push it into the pipeline while the reasoning is fresh. Select a lead under the report and click Add Deal: the deal is created with the ARV, repair estimate, offer price, and score filled in, and the analysis stored on it.

Common problems

"AI not configured". Underwriting runs on your own AI provider key. Add it under Settings → AI and make sure it matches the provider set as Active Provider.

"Rate limit reached (10 analyses/hour)." Underwriting is capped at ten analyses an hour. Wait, and stop re-running one address hoping for a friendlier number.

"AI returned an invalid response." The model failed to return a usable report twice in a row. Try again, and if it persists switch to a stronger model under Settings → AI.

The numbers are clearly wrong for the area. Check the address is complete: street, city, state, ZIP. A partial address gives the model a vague location. Then add a RentCast key so it underwrites from comps rather than memory.

I cannot open the analyzer. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan. The Analyze Deal shortcut on a lead also only appears for seller and investor leads.

Related

Deal Analyzer · Deals Pipeline · Lead Scoring

Appointments

Booking

InvestorFunnel has a built-in booking system, so a lead can pick a time from your real availability without emailing back and forth. This article is the overview: what the pieces are and the order to set them up in. Each piece has its own article.

Set it up in this order

  1. Appointment Types: what someone can book, and for how long.
  2. Availability: when you are bookable.
  3. Connect it to a funnel step, so booking happens inside the flow a lead is already in.
  4. Team member routing, if more than one person takes appointments.
  5. Reminders, so people actually turn up.
  6. Calendar sync, so bookings land in the calendar you already live in.

You will find these under Appointments in the sidebar, which holds All Appointments, Calendar, Types, and Settings.

The status flow, and the one thing to remember

An appointment moves through Pending, Confirmed, Completed, Cancelled, or No-show.

Confirmed is the status that makes things happen. Calendar sync and the confirmation email both fire on Confirmed, not on Pending. If a booking exists but nothing reached your calendar and nobody got an email, that is almost always why.

Tips to get the most out of it

  • Set availability before you share a booking link. A link with no availability shows a visitor nothing and they do not come back.
  • Book the first slot yourself and walk the whole flow. It is the only way to see what a lead sees, including the confirmation email.
  • Leave buffer between slots. Back-to-back calls with no gap is how you end up late to the one that mattered.
  • Keep types few and obvious. Two clear options convert better than six that make someone choose carefully.
  • Mark outcomes honestly, especially no-shows. It is the only way to see which lead sources book but never show.

Common problems

A booking did not reach my calendar and no email went out. The appointment is still Pending. Both fire on Confirmed.

No times are offered to visitors. No availability is configured, or the window is fully booked. See Configuring Availability.

My own test bookings start failing with "Too many booking attempts". There is a per-IP hourly limit on new bookings, so repeated testing from one connection trips it. Wait an hour or test from another network. This is not a fault.

Slot start times overlap for a longer appointment type. Start times are offered on a fixed 30 minute grid regardless of how long the type is, so a 45 or 90 minute type can offer starts that overlap. Choose durations that divide into 30 where you can.

A team member cannot see Appointments. It requires the Appointments permission, under Account → Team.

Related

Setting Up Appointment Types · Configuring Availability · Connecting Booking to a Funnel Step · Appointment Reminders · Appointments Dashboard

Setting Up Appointment Types

An appointment type is one bookable thing: a 30 minute strategy call, a property showing, a 60 minute consultation. It holds the length of the meeting, the buffers around it, how far ahead people can book, and any screening questions you want answered first. Every booking belongs to a type, so you need at least one before anyone can book anything.

What a type does not control

A type does not carry its own hours. When people can book is set once for the whole account under Appointments → Appointments → Settings → Availability. Confirmation wording and reminder timing are account-wide too.

Setup

  1. Go to Appointments → Types and click Add Type.
  2. Under Basic Info, enter a Name. The Slug fills in automatically and becomes part of the booking URL.
  3. Under Duration & Buffers, pick a Duration and, for breathing room between meetings, a Buffer Before and Buffer After. Color Bar is the dot this type gets on the calendar.
  4. Under Booking Window, set Max Advance Days, Min Notice, Max Participants (1 is one on one, higher makes it a group session), and an optional Location such as a Zoom link or an office address.
  5. Set Associated Funnel if this type belongs to a specific funnel or to property showings. Otherwise leave it on General (catchall booking page only).
  6. Add up to three Custom Screening Fields if you want answers before the call. Each takes a Label and a Field Type, and for Dropdown or Radio, one option per line.
  7. Leave Active (visible on booking page) checked and click Add Type.

Day to day

The list shows each type's duration, capacity (1:1 or a group count), and status. The clipboard icon copies that type's direct booking link, which looks like /your-account/book/?type=strategy-call and is what you paste into an email or a text. The arrow icon opens it so you can see what the lead sees. The toggle takes a type off the booking page without deleting it, which is the right move for anything seasonal.

Tips to get the most out of it

  • Fewer types converts better. Three clear options beat nine. Every extra choice is a decision the lead has to make before they reach a calendar.
  • Use screening fields as a filter, not a form. One question that separates serious from curious, like "What is your timeline?", is worth more than three that make people give up.
  • Give showings the Property Showing funnel. Only types set to Property Showing appear in the Booking Redirect dropdown on a property, so that single setting decides whether the property flow can find the type at all.
  • Do not change the slug after you have shared the link. The old URL stops working. Rename the Name freely and leave the Slug alone.

Common problems

"That slug is already in use by another appointment type." Two types cannot share a slug, and the slug is generated from the name, so similarly named types collide. Edit the Slug field by hand.

"Cannot delete: this type has active appointments." Something is still Pending or Confirmed against it. Cancel or complete those first, or just deactivate the type rather than deleting it.

The booking page shows no times for this type. Usually Min Notice: at the default of 24 hours, nothing today or tomorrow morning is bookable. Then check that the day has hours under Appointments → Appointments → Settings → Availability.

Booking one type blocked every other type. That is expected for one on one types. A pending or confirmed slot blocks that time across the whole account, not just for its own type. Group types, meaning Max Participants above 1, only count against themselves.

A team member cannot see this page. It needs the Appointments permission, granted under Account → Team. Team members also cannot delete types at all, only deactivate them.

Related

Configuring Availability · Connecting Booking to a Funnel Step · Appointments Dashboard · Booking

Configuring Availability

Availability is the weekly grid of hours you are open for bookings, plus the individual dates you are not. It is set once for the whole account and every appointment type inherits it. Nothing outside it can be booked.

Setup

  1. Go to Appointments → Settings and start on the General tab. Set Admin Timezone first, because every hour you enter afterwards is read in it.
  2. Open the Availability tab. For each day, check On and set a start and end time. Monday to Friday, 9:00 to 17:00 is the starting point.
  3. Click Save Availability.
  4. Open the Date Exceptions tab. Under Add Date Exception, pick a Date, choose Blocked (day off) or Special hours, add an optional Reason, and click Add Exception.

How the two layers fit together

The weekly grid is the baseline. An exception overrides it for one date: Blocked removes the day entirely, Special hours replaces that day's hours with the ones you enter. There is one exception per date, so adding a second for the same day updates the first. The list shows the next 90 days, and you cannot add an exception in the past.

Day to day

Visitors see times converted into their own timezone, so a 9:00 Eastern slot reads as 6:00 to somebody in California. Start times are generated on the half hour, and each appointment type then applies its own Min Notice and Max Advance Days on top. The one habit worth building: block travel days the moment you book the flight.

Closing bookings temporarily

Availability covers your normal week and your one-off date exceptions. To close the whole booking page instead, go to Appointments → Settings → General and uncheck Booking enabled.

With it off your public booking page shows a short notice that you are not accepting bookings and no times are offered. Existing appointments are untouched, and you can still add appointments yourself from the Appointments and Calendar pages. Switch it back on and the page returns exactly as it was.

Reach for this when you are away for a stretch. For a single day a date exception is the better tool, because it leaves the rest of your calendar bookable.

Tips to get the most out of it

  • Publish less than you are actually free. Opening 9 to 5, five days a week, lets a lead drop a call anywhere in your week. Two or three blocks is plenty and it keeps your deep work intact.
  • Protect your mornings. Starting bookings at 11:00 buys back the best two hours of every day, and nobody has ever complained about it.
  • Use Special hours instead of Blocked for half days. A conference morning does not have to cost you the afternoon.
  • Enter the year's holidays in one sitting. They take five minutes and they are invisible until the day you forgot one.

Common problems

The booking page shows no times at all. Check three things in order: the day is On in the weekly grid, the date has no Blocked exception, and the appointment type's Min Notice is not eating the whole window. The default 24 hours removes today and part of tomorrow.

Every time is offset by an hour or more. Admin Timezone is wrong. Changing it re-reads every stored time in the new zone, including appointments already on the books, so set it once before you take real bookings.

A 45 or 90 minute type offers overlapping start times. Start times are always generated on the half hour, so a 45 minute type offers both 9:00 and 9:30. Booking one clears the other automatically, so nothing double books, but the list looks fuller than your day really is. Durations of 30, 60 and 120 minutes read cleanest.

My weekly hours are being ignored. If Team Routing is on and set to Availability-based, this grid and its date exceptions are bypassed in favor of each team member's own availability, set on the Team page.

"Cannot add exceptions for past dates." Exceptions are forward looking only. To record something historic, leave it out: it changes nothing about what can still be booked.

A team member cannot see this page. It needs the Appointments permission, granted under Account → Team.

Related

Setting Up Appointment Types · Team Member Routing · Google & Microsoft Calendar Sync · Booking

Connecting Booking to a Funnel Step

A booking step replaces a funnel's thank-you page with a scheduler. The lead submits the funnel form and lands on your booking page with their name, email and phone already filled in, and the appointment they book is tied back to their lead record. It is the difference between collecting a lead and booking a meeting.

What it does not do

It does not embed a calendar inside the funnel page. The lead is redirected to your booking page, which picks up the funnel's theme so the flow still reads as one experience. One booking step per funnel.

Setup

  1. Create the appointment type first under Appointments → Types. Only active types appear in the dropdowns below.
  2. Go to Funnels and expand the funnel you want.
  3. On a built-in funnel, use the panel under the page list that offers to send leads to your scheduler after form submit: choose your type in Select appointment type... and click Add Booking Step.
  4. On a funnel you built yourself, click Add Step, set Page Type to Booking, give it a Step Label, pick the Appointment Type, and click Add Step.
  5. Check the URL shown on the new step, then use the eye icon to preview the live booking page.

Day to day

The booking step appears as a numbered step in the funnel's page list alongside the URL it sends people to. The pencil icon changes which Appointment Type it points at, the toggle in the Status column disables it so leads go back to the thank-you page, and the trash icon removes it. Move it with the arrows if the order is wrong.

Property showings work the same way

A property page has its own version of this. Open the property, find Booking Redirect, check After contact form submission, redirect to booking page, and pick an Appointment Type. Only types whose Associated Funnel is Property Showing appear in that dropdown. The property carries through to the appointment, so you know which house the showing is for.

Tips to get the most out of it

  • Put the booking step last. It is the end of the funnel, not a stop along the way. Anything after it competes with the calendar.
  • Match the type to the intent. Somebody who just asked what their house is worth should be offered a short call, not a 90 minute consultation.
  • Turn on auto-confirm unless you genuinely triage bookings. Under Appointments → Settings → General, Auto-confirm appointments on booking is what makes the confirmation email, the reminder and the calendar event happen without you clicking anything.
  • Test it as a stranger. Submit the funnel form yourself in a private window and book a slot. Two minutes, and it is the only way to see what the lead actually sees.

Common problems

Leads still land on the thank-you page. The step is disabled, or it has no Appointment Type selected. Both look fine at a glance, so check the toggle in the Status column and open the pencil icon.

"Appointment type not found." The type behind the step was deleted or its Slug was changed. Re-pick the type on the step.

The booking page opens with no times to choose. That is availability, not the funnel step. Check Appointments → Appointments → Settings → Availability and the type's Min Notice.

A lead booked, but nothing reached my calendar and they got no confirmation. The appointment is sitting at Pending. Calendar sync and the client confirmation email both fire on Confirmed, never on Pending. Confirm it from Appointments → All Appointments, or turn on auto-confirm.

A standalone form ignores the booking step. Forms built in Forms follow their own Redirect URL after submission and do not pick up a funnel's booking step. Use a funnel form or a property contact form for this.

Related

Setting Up Appointment Types · Configuring Availability · Appointments Dashboard · Booking

Team Member Routing

Routing decides which team member an incoming appointment is assigned to. Without it, bookings arrive unassigned and somebody has to hand them out. With it, each booking lands on a named person and that person is emailed about it.

Set up the Team page first

Routing only considers members who are Active and who have at least one appointment type checked. Go to Account → Team and, for each member, use the tags icon to open Appointment Types and check the types they handle. Use the clock icon to open Availability and set their own weekly hours. A member with no types checked is never routed anything, so leaving them all unchecked does not mean "all types": check them explicitly.

Turn routing on

  1. Go to Appointments → Appointments → Settings → Routing.
  2. Check Automatically assign a team member to new appointments.
  3. Choose an Assignment Method.
  4. Click Save Routing Settings.

Manual (staff assigns appointments themselves) leaves new bookings unassigned for you to hand out. Availability-based (first qualified member free for the slot) picks the first qualified member whose own hours cover the slot and who has nothing conflicting. Round Robin (rotate evenly among qualified members) gives the booking to whichever qualified member has gone longest without one, and does not look at their hours.

Day to day

The assigned person shows in the Team Member column on Appointments → All Appointments, and you can change it with the edit pencil on any appointment. Anyone assigned by routing gets a New Appointment Assignment email. On Appointments → Calendar, the All Team filter narrows the view to one person, which is the fastest way to see whether the load is really spread.

Tips to get the most out of it

  • Round Robin is fair, Availability-based is reliable. Round Robin will happily hand a Saturday showing to somebody who does not work Saturdays. If your team keeps genuinely different hours, use Availability-based.
  • Availability-based is only as good as the per-member hours. A member with an empty Availability schedule is invisible to it.
  • Use appointment types as the specialization. Check only Property Showing for the person who does showings and routing sorts the work out on its own.
  • Set Notification Email for anyone who wants alerts elsewhere. It overrides their login email for assignment notices, which is useful when showings should land in a shared inbox.

Common problems

One member never gets anything. They are inactive, or they have no appointment types checked. Open the tags icon for them on Account → Team and check at least one.

My account-wide availability stopped applying. Availability-based replaces the account weekly grid and its date exceptions with the qualified members' own hours. If none of them have hours set, it falls back to the account grid.

Turning routing on stopped appointments being assigned. With routing off, a booking is quietly assigned to the first qualified member for that type, with no email. Turning routing on and choosing Manual replaces that with nothing at all. Pick Availability-based or Round Robin if you want assignment to happen.

A team member logs in and sees no appointments. Team members only see appointments assigned to them. If nothing is being assigned, an empty list is the correct answer.

A team member cannot open the Team page. It is account owner only, not permission based, so they are sent back to the dashboard. Appointment work itself needs the Appointments permission, granted under Account → Team.

Related

Configuring Availability · Setting Up Appointment Types · Appointments Dashboard · Team Members & Access Control

Appointment Reminders

One reminder email goes to the client a set number of hours before a confirmed appointment. It repeats the details, includes a link to add the meeting to their calendar, and a link to cancel. It is the cheapest no-show insurance you have.

What it does not do

There is no SMS reminder, no reminder to you or your team, and no second nudge. One email, per appointment, on one interval that applies to the whole account. The timing cannot be set per appointment type.

Setup

  1. Go to Appointments → Settings → General.
  2. Under Confirmations & Reminders, set Send Reminder to 24 hours before, 48 hours before, or 72 hours before.
  3. Decide on Auto-confirm appointments on booking (no manual confirmation needed) while you are on this tab. Reminders only go out for confirmed appointments.
  4. Click Save Settings.

How the timing actually works

Reminders are picked up hourly, and an appointment qualifies when it falls inside the hour that matches your setting. A 24 hour reminder for a 2:00 PM Thursday meeting goes out between 2:00 PM and 3:00 PM on Wednesday. Each appointment is reminded exactly once and is marked as sent immediately, so changing the setting afterwards will not produce a second one. The hours are counted against your Admin Timezone, not the client's.

Tips to get the most out of it

  • 24 hours beats 48 for calls. Close enough that the meeting is still in view, far enough that they can move their day if they need to.
  • Use 48 or 72 for anything involving travel or prep. A showing that needs directions and a lockbox code deserves the extra lead time.
  • Auto-confirm is what makes reminders work at all. Every hour a booking sits at Pending is an hour the reminder window can slide past.
  • Do not let the reminder be your only touch. A short personal note the day before outperforms any automated email, and the reminder still handles the logistics.

Common problems

The client never got a reminder. The appointment was not Confirmed. Only confirmed appointments are considered, and Pending ones are skipped no matter how close the date is.

I confirmed it and the reminder still never came. You confirmed it after the reminder window had already passed. Confirming a meeting six hours out with a 24 hour reminder set leaves no window to fire in. The confirmation email still goes out.

An appointment I added by hand sent nothing. Manually added appointments start at Pending like any other unless auto-confirm is on. Confirm it and the client gets the confirmation email; the reminder follows if there is still time.

The reminder arrived at the wrong local time. Check Admin Timezone on the same tab. Everything is counted from it.

A team member cannot see these settings. The page needs the Appointments permission, granted under Account → Team.

Related

Appointments Dashboard · Configuring Availability · Google & Microsoft Calendar Sync · Booking

Google & Microsoft Calendar Sync

Connect a calendar and every appointment you confirm is written to it as an event, then removed again if you cancel. It exists so you are not keeping two calendars in your head.

Microsoft is not available yet

Despite the name of this article, only Google Calendar can be connected today. The Microsoft side is built but not switched on, so no Microsoft Calendar button appears on the Integrations tab. If Outlook is your only calendar, use the add-to-calendar link in the confirmation email for now rather than hunting for a setting that is not there.

What it cannot do

Sync runs one way, out of InvestorFunnel and into your calendar. Events you create in Google are invisible to the booking page: they do not block slots, so a personal appointment in Google will not stop a lead booking over it. Bookable time comes only from Appointments → Appointments → Settings → Availability. Events are written to your primary calendar with no calendar picker, and it is one calendar per account rather than one per team member.

Setup

  1. Go to Appointments → Settings → Integrations.
  2. Under Calendar Sync, click Google Calendar.
  3. Sign in and grant access when Google asks.
  4. You come back to a Connected to Google Calendar panel showing the account email. That is the whole setup.

What gets synced

Confirming an appointment creates an event titled with the appointment type and the client's name, timed in your Admin Timezone for the type's duration. The description carries the client's notes and the assigned team member, the type's Location becomes the event location, and the client is added as an attendee, which means Google may send them an invitation of its own. Cancelling the appointment deletes the event.

Tips to get the most out of it

  • Confirm promptly, or auto-confirm. Nothing reaches your calendar until an appointment is Confirmed. Auto-confirm appointments on booking on the General tab removes the delay entirely.
  • Fill in Location on the appointment type. A Zoom link sitting in the event is one less thing to dig up thirty seconds before a call.
  • Do not block your own time in Google and expect the booking page to know. Personal commitments need a Date Exception or narrower weekly hours.
  • Reschedule by cancelling and rebooking when the calendar entry has to be right, because editing the date on an existing appointment does not move the event.

Common problems

A booking is not on my calendar. It is Pending. Sync fires on Confirmed, never on Pending, and the same is true of the client's confirmation email.

I moved an appointment and the calendar still shows the old time. Rescheduling through the appointment's edit form updates the appointment but not the existing calendar event. Cancel and rebook for a clean event.

"Calendar sync is not yet available." Nothing is configured for your account at the platform level. That is on our side, not yours: contact support.

"Google did not return a refresh token. Please disconnect and reconnect." The consent screen finished without handing back a long-lived token. Click Disconnect and run through it again.

Events stopped appearing after weeks of working. Access was revoked on the Google side, usually by removing the app from that Google account's security settings. Reconnect from the Integrations tab.

Disconnecting did not remove my existing events. Correct. Disconnect stops future syncing and leaves what is already on the calendar alone. Delete those in Google if you want them gone.

Related

Appointments Dashboard · Setting Up Appointment Types · Appointment Reminders · Booking

Appointments Dashboard

The Appointments dashboard lists every appointment on the account, with filters, summary cards, and inline actions. It is the day-to-day view; the Types and Availability pages are where you configure how bookings happen in the first place.

How to use it

  1. Go to Appointments → All Appointments.
  2. Filter by status or by period using All Dates.
  3. Click an appointment for Appointment Info, Client Info, and its Activity Timeline.
  4. Use the inline actions to update it, or Add Appointment to book one manually, for example after a phone call.

The statuses, and why they matter

  • Pending: booked but not yet confirmed.
  • Confirmed: confirmed. This is the status that triggers calendar sync and confirmation email.
  • Completed: it happened.
  • Cancelled: called off.
  • No-show: they did not turn up. Worth marking accurately rather than lumping it in with cancelled, because no-shows are a pattern you want to be able to see.

Tips to get the most out of it

  • Mark no-shows as no-shows. It is the only way to spot the lead sources that book but never show, which is a real quality signal about a channel.
  • Close the loop by marking Completed. Otherwise your dashboard counts stay wrong and you cannot trust your own numbers.
  • Log phone bookings with Add Appointment. An appointment that only exists in your head does not send reminders.
  • Read the Activity Timeline before a follow-up call. Thirty seconds of context beats opening with "remind me who you are".

Common problems

An appointment is not on my external calendar. Calendar sync fires on Confirmed, not on Pending.

The client did not get a confirmation. Same cause: still Pending, or the appointment was added manually without an email on the record.

A team member cannot see this page. It requires the Appointments permission, under Account → Team.

Related

Setting Up Appointment Types · Configuring Availability · Appointment Reminders

Phone & SMS

Power Dialer

The Power Dialer is a click to call phone inside your browser. You load a queue of leads, press Call, talk, then log the outcome. The call, your notes, and the disposition all land on the lead record. It runs on your Twilio account, and Twilio bills you directly for the minutes.

What it cannot do

It dials one number at a time and waits for you. There is no predictive or parallel dialing, and it will not place the next call by itself: after you log a call it selects the next lead and stops.

It is outbound only, and it needs a microphone plus a tab that stays open. Closing or reloading the tab mid call drops the call.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Setup

  1. Under Settings → Phone, fill in Twilio Account SID, Twilio Auth Token, and Twilio From Number, then click Save Phone Settings. Nothing works until these are saved.
  2. Go to Phone → Settings in the sidebar, titled Phone Settings.
  3. Click Setup Dialer. This one time step creates a TwiML Application and an API Key inside your own Twilio account, and the status changes from Not provisioned to Configured.
  4. Read the TCPA Compliance box, tick I acknowledge and agree to the TCPA compliance terms above, and click Accept & Enable Dialer. No call is placed until this is recorded.
  5. Under Call Settings, click Refresh beside Caller ID Number, pick your number, set a Daily Call Goal, and click Save Settings.
  6. Turn on Restrict calls to specific hours, set Start Time, End Time, and Timezone, then Save Calling Hours.
  7. Optional: paste a talk track into Call Script / Talk Track and Save Script. Upload MP3 or WAV under Voicemail Drop Audio for one click voicemails.

Using it day to day

Open Phone and click Load Leads. Search by name or phone, narrow with the Status and Funnel filters, tick what you want, and load. Numbers on your Do Not Call list are greyed out with a DNC badge and cannot be selected. For a single number, use the Search lead or enter phone number box above the queue.

Press Call or Enter. While connected you get Mute, Hang Up (or Esc), and, if you uploaded audio, a voicemail picker plus Drop VM. Your talk track shows in the right panel.

When the call ends the Log This Call bar appears. Type your notes, then pick Hot, Warm, Not Interested, Callback, Wrong Number, DNC, No Answer, Voicemail, or Busy. Notes save when you pick a disposition, not before. Callback opens a date and time scheduler, and there is a prefilled SMS Follow-Up box.

The disposition writes a note on the lead timeline with the call duration and moves the lead's status: Hot to qualified, Warm and Callback to contacted, Not Interested, Wrong Number, and DNC to dead. Your queue is held in the browser tab, so a reload does not lose your place.

TCPA: your obligation, and what the platform does about it

The acknowledgment you signed is not boilerplate. Outbound calling is governed by the TCPA and the Telemarketing Sales Rule, and the duties are yours: get consent before you call, maintain and honor a Do Not Call list, respect calling hours, and follow recording consent law in the states you call. The platform gives you controls, not legal cover.

The Do Not Call list is shared across channels. It sits on Phone Settings under Do Not Call List. A number gets on it four ways: you type it and click Add, you bring a list in with Import CSV, you disposition a call as DNC, or the person texts STOP to your Twilio number. After that the dialer refuses the call with This number is on the Do Not Call list and skips that lead in the queue.

One gap to know about. Adding a number by hand, importing a CSV, or dispositioning as DNC blocks calls but does not currently block texts. Only an inbound STOP reply blocks both. When someone asks you to stop contacting them, add them to the list and stop texting them yourself, because the platform will not stop that text for you.

Calling hours are off until you turn them on. With the switch on, the check runs on the server and a call outside the window is refused with the window and timezone named. The end hour is exclusive, so 9:00 PM means the last call starts before 9pm. The window is one timezone applied to your whole list, while the law looks at the time where the person you are calling is: if you dial across timezones, set the window to the overlap, not to your own hours. With the switch off there is no restriction at all and every timing judgment is yours.

Recording has a catch. Enable call recording records both sides. The Recording Disclosure Message you write is spoken before the outbound leg is dialed, so you hear it and the person you are calling does not. Treat it as your own prompt and say the disclosure out loud when they answer. Several states require both parties to consent.

Caller ID reputation is handled at Twilio. Nothing here registers or attests your numbers for STIR/SHAKEN. If your calls land as "Spam Likely" that is yours to sort out in the Twilio console.

Tips to get the most out of it

  • Load one tight list per session. A queue of 40 you intend to finish beats 400 you abandon at lunch.
  • Turn calling hours on even if you only dial at noon. It costs nothing, and the one time it matters is the evening you lose track and dial a list three timezones west.
  • Learn the disposition keys. H hot, W warm, D DNC, 1 to 9 for the whole bar. Hands off the mouse is most of the gap between 25 dials an hour and 60.
  • Type notes while the call is live. They only commit when you pick a disposition, so let the two save together.
  • Record one voicemail, not five. A 20 second drop you fire in one click gets used. A library means you sit there choosing.
  • Import your suppression list on day one. Better than rediscovering those numbers one angry call at a time.

Common problems

Power Dialer Setup Required. Either the dialer was never provisioned or the TCPA box was never accepted. Both are on Phone Settings.

Twilio credentials not found. The Account SID and Auth Token are missing. They live under Settings → Phone, and they are the same credentials the dialer uses.

The status stays on Connecting. The browser has not been granted microphone permission. Check the prompt in the address bar and reload.

Outside calling hours. You are dialing outside your configured window. Wait, or change Calling Hours.

Daily call limit reached. Your account has a cap on calls per day and today's count hit it. The counter is on the dialer footer and on Phone Settings, and it resets at midnight.

A number I removed from the DNC list is still greyed out. The queue caches its flags. Reload and load the leads again.

A team member cannot open Phone Settings. That page is owner and admin only by design, so nobody can quietly widen the calling window or delete DNC numbers. Team members can still use the dialer.

Related

SMS Notifications (Twilio) · Two-Way SMS Inbox · Lead Dashboard & Filtering · Notes & Activity Log

SMS Notifications (Twilio)

Connect your own Twilio account and the platform texts you the moment a lead submits a form. This is an alert to your phone, not a marketing channel: it exists so you can call a fresh lead back in two minutes instead of two hours. The same credentials power every other text the platform sends, including the dialer's follow ups and the conversation thread on a lead record.

What it cannot do

There are no SMS appointment reminders. Appointment reminders go out by email only.

Long messages send in full, up to 1,600 characters. Anything past a single segment is split by the carrier and reassembled on the handset, so the recipient sees one message. Carriers bill per segment: 160 characters is one segment, and a single emoji or curly quote drops that to 70, because one non-standard character switches the whole message to unicode encoding.

Notifications are one way. To receive replies you have to point Twilio's inbound webhook at the platform, covered in Two-Way SMS Inbox.

Setup

  1. Create a Twilio account and buy an SMS capable number.
  2. Go to Settings → Phone.
  3. Tick Notify me by SMS when a new lead submits a form.
  4. Put your mobile in Notify Phone (SMS recipient) in E.164 format, for example +15551234567. Left blank, it falls back to the Owner Phone on your account.
  5. Paste your Twilio Account SID and Twilio Auth Token, and put your Twilio number in Twilio From Number.
  6. Click Save Phone Settings, then submit one of your own funnels as a test.

These are your keys on your account. With the SID or token blank, every text is skipped silently: nothing sends, no error appears, and the only trace is a server log line. A missing key looks exactly like a feature that is switched off, so always finish with the test.

Using it day to day

A lead alert reads like New Seller lead: Jane Doe | +15551234567, so you can call from the notification. The same connection also texts the assigned team member when a lead is routed to them, sends portal activity notices, and delivers the SMS Follow-Up you send from the dialer's wrap up bar. Team members only get texted if they have a phone number saved under Account → Team.

Compliance: the moment you text a lead, TCPA applies

Texting yourself is unremarkable. Texting a lead is regulated: a marketing text to a wireless number needs prior express written consent, and you have to honor an opt out promptly and permanently. That obligation is yours.

  • Opted out numbers are blocked before the send. Every outbound text is checked against the shared Do Not Call list, and a blocked send is logged rather than delivered. Queued messages to a number that opts out are marked blocked instead of retrying forever.
  • Inbound STOP is recorded automatically, along with STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT, OPTOUT, and OPT-OUT, and the sender gets an unsubscribe confirmation.
  • None of that happens unless you set the inbound webhook in Twilio. Without it a lead can text STOP all day, nothing is recorded, and your next message goes out as though they never asked. If you intend to text leads at all, do the webhook step in Two-Way SMS Inbox first.

Carrier registration is also not handled here. A2P 10DLC brand and campaign registration happens in your Twilio console and is yours to complete. Unregistered traffic gets filtered by carriers, which looks like messages Twilio accepts and the recipient never receives.

Tips to get the most out of it

  • Send the alert to the phone you actually answer. The value here is speed to lead, and it evaporates on a number you check at night.
  • Keep email notifications on too. The text is the nudge, the email is the record with the full submission.
  • Use a dedicated Twilio number, not your cell. Reputation problems and carrier filtering should attach to a number you can replace.
  • Set Notify Phone explicitly rather than leaning on the Owner Phone fallback. One profile edit should not silently redirect your lead alerts.
  • Check your Twilio balance monthly. An empty balance produces the same symptom as a broken integration: silence.

Common problems

No text arrives when a lead submits. In order: the notify box is ticked, Notify Phone is in E.164 format with the country code, all three Twilio fields are saved, and the Twilio account has credit. Any one of these missing produces silence, not an error.

The Twilio fields look filled but nothing sends. Saved keys show as masked dots, which looks identical whether the stored value is right or wrong. Paste both again and save.

A text cost more than I expected. Billing is per segment rather than per message, so a 400 character text is three charges. The counter under the compose box shows the segment count as you type and turns amber as soon as you pass one.

My team member did not get the assignment text. They have no phone number on their team record. Add it under Account → Team.

Texts to one lead stopped while everyone else is fine. That number is on the shared Do Not Call list, most likely from a STOP reply. Check Phone Phone → Settings, and do not remove them unless they asked you to.

Related

Two-Way SMS Inbox · Power Dialer · iMessage Notifications (Sendblue) · Notifications

Two-Way SMS Inbox

Once your Twilio number can receive messages, texting a lead becomes a conversation instead of a broadcast. Messages in both directions thread on the lead's own record in a card called SMS Conversation, and unread replies show as a badge on the lead list so you can see who is waiting on you.

What it cannot do

It is not a single unified inbox. Threads live per lead, so there is no one screen showing every conversation. The unread badges on the lead list are how you find the ones that need attention.

An inbound text is matched to a lead by the last ten digits of the sender's number, within your own account. A text from a number that matches no lead is still stored and the opt out is still honored, but it will not appear in any thread.

Text only: no photos, no group threads. Outbound messages send in full up to 1,600 characters, split into carrier segments where needed, so your thread and what the recipient actually received match.

Setup

  1. Save Twilio Account SID, Twilio Auth Token, and Twilio From Number under Settings → Phone and click Save Phone Settings. The conversation card only appears when all three are present and the lead has a phone number.
  2. In your Twilio console, open that phone number and set A MESSAGE COMES IN to a webhook, method POST, URL https://investorfunnel.com/app/api/webhooks/twilio.php. Save the number.
  3. Confirm Twilio From Number holds the same number that webhook belongs to. Inbound messages are matched to your account by the last ten digits of the receiving number, so a mismatch means inbound texts are rejected as unverifiable and never appear.
  4. Text your Twilio number from your own phone and confirm the message lands on the matching lead.

Step 2 is the one people skip. Sending works without it. Receiving, unread badges, and automatic STOP handling do not.

Using it day to day

Open a lead and scroll to SMS Conversation. Inbound sits left, yours right, oldest first, up to the last 200. Type and click Send SMS, or press Ctrl or Cmd plus Enter. Opening the thread marks inbound messages read and clears the badge.

For a quick one off, the chat icon on any row of the Leads list opens a small Send SMS box, and those messages land in the same thread. When a lead replies and has an open assignment, the assigned team member gets a text containing the reply, provided they have a phone number on their team record.

Compliance: this is where opt outs are actually captured

The TCPA requires you to honor an opt out, and the recognized way a consumer gives one over text is by replying STOP. This webhook is the only thing in the platform that hears them.

When an inbound message is exactly STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT, OPTOUT, or OPT-OUT, ignoring case and punctuation, the platform records the opt out on the shared Do Not Call list and replies You have been unsubscribed and will not receive further messages. From then on every SMS and iMessage to that number is refused before sending, and the dialer will not call it. The opt out is filed against the account that owns the receiving number rather than against whatever lead the message matched, so it holds even when the sender is not in your leads at all.

Two things to be blunt about. If you never set the webhook, none of this happens: replies are invisible, opt outs are unrecorded, and you keep messaging people who asked you to stop. That is your exposure, not a platform limitation to point at later. And a number you add to the Do Not Call list by hand blocks calls but does not currently block texts, so if someone opts out verbally, add them to the list and stop texting them yourself.

Inbound requests are signature checked against your Twilio Auth Token and rejected on failure, so nobody can forge an opt out or a message into your account.

Tips to get the most out of it

  • Text first, call second, on any lead that has gone quiet. A one line text gets answered by people who will not pick up an unknown number, and the reply tells you which number is even live.
  • Work the unread badges as a queue. They are the highest intent signal on the lead list: someone typed a reply to you specifically.
  • Ask one question per message. Two questions in one text reliably gets one answer, usually not the one you needed.
  • Do not paste marketing copy into a conversation thread. The thread is the reason a lead trusts the channel, and bulk promotional texting carries consent and filtering problems a one to one exchange does not.
  • Send the STOP test yourself once, from a number you control. Watching the unsubscribe confirmation come back is the only proof the webhook is live. Then remove that number from the Do Not Call list.

Common problems

The SMS Conversation card is not on the lead page. One of the three Twilio fields is empty, or that lead has no phone number.

I can send but replies never show up. The inbound webhook is not set on the number in Twilio, or Twilio From Number is not the number people are replying to. Both have to be true.

Replies used to arrive and stopped. Usually the Auth Token was rotated in Twilio but not updated under Settings → Phone. Inbound messages are signature checked with that token and dropped when it does not match.

Failed to send SMS. Twilio rejected it. Usual causes are an empty balance, a from number that is not SMS capable, or an unregistered A2P campaign. Check the Twilio error log.

A reply came in but attached to no lead. The sender's number matches no lead's phone in your account. Save the number on the lead and future messages thread correctly.

Security token expired. Please refresh and try again. The page has been open a long time. Reload the lead and resend.

Related

SMS Notifications (Twilio) · iMessage Notifications (Sendblue) · Power Dialer · Lead Dashboard & Filtering

WhatsApp Notifications

WhatsApp is not an available channel in the platform today. There is no WhatsApp section in Settings, nowhere to save WhatsApp Business credentials, and nothing that sends a lead alert, a notification, or a message to a lead over WhatsApp. If you have seen WhatsApp listed on a plan comparison or an integration roundup, this article is the current answer.

What to use instead

For a personal alert the moment a lead submits, use SMS Notifications (Twilio) for a text to your phone, or Telegram Bot Notifications for a free push to a Telegram chat. Telegram is the closest thing to the WhatsApp experience and costs nothing per message.

To actually message a lead, use Two-Way SMS Inbox, or iMessage Notifications (Sendblue) if your market skews toward iPhone. Both thread on the lead record and both are covered by the shared opt out list.

If you need WhatsApp anyway

You can bridge it yourself. Point a webhook at your own WhatsApp Business sender using Webhooks (Zapier, Make, Pabbly) and push every new lead into WhatsApp with the tool of your choice.

Know what you give up. Messages sent that way are not logged on the lead record and are not checked against the shared Do Not Call list. If you use the bridge to message leads rather than to notify yourself, consent and opt out tracking become entirely your responsibility, and WhatsApp adds its own template approval and opt in rules on top of the TCPA.

Common problems

I cannot find where to enter my WhatsApp credentials. There is nowhere to enter them. Nothing is broken and nothing is hidden behind a plan.

My plan page mentions WhatsApp alerts. Marketing copy in a few places is ahead of what is built. Use SMS or Telegram for lead alerts today.

Related

SMS Notifications (Twilio) · Telegram Bot Notifications · iMessage Notifications (Sendblue) · Webhooks (Zapier, Make, Pabbly)

Telegram Bot Notifications

Point a Telegram bot at your account and you get an instant push when someone submits one of your forms, with the lead's details and score in the message. It is free, has no per message cost, and needs no phone number, which makes it the cheapest way to get real time lead alerts. It is a notification to you, not a way to talk to leads.

What it cannot do

It is outbound only. Nothing reads the Telegram chat, so a reply you type there goes nowhere and nobody is notified.

It fires on form submissions and nothing else: not appointments, assignments, deals, or task reminders. A lead you create by hand or import does not trigger it.

There is one Chat ID for the whole account. To reach several people, point it at a group chat.

Setup

  1. In Telegram, open a chat with @BotFather, send /newbot, and copy the token it gives you.
  2. Message @userinfobot to get your own Chat ID. For a group, add your bot to the group and use the group's ID, which begins with a minus sign.
  3. Go to Settings → Integrations and find Telegram Lead Notifications.
  4. Tick Notify me via Telegram when a new lead submits a form.
  5. Paste the token into Bot Token and the ID into Chat ID, then click Save Integration Settings.
  6. Open the chat with your bot and send it any message, once. A Telegram bot is not allowed to start a conversation, so until you message it first, alerts will not be delivered even with everything configured correctly.
  7. Submit one of your own funnels as a test.

The bot token is your key and it stays on your account. If it is blank, alerts are skipped silently: nothing sends and nothing appears on screen, so always finish with the test submission.

Using it day to day

There is nothing to operate. Each lead arrives as a formatted message: a scoring emoji and the funnel name on the first line, then the name, phone, email, and score out of 100. The emoji comes from the lead score, so a hot lead looks different from a cold one at a glance. The phone number is tappable in Telegram, which is the practical reason to use this over email: you can call back straight from the notification.

Tips to get the most out of it

  • Use a group chat, not your personal chat. Create a group, add the bot and everyone who works leads, and use that group's Chat ID. Adding a person later is one invite rather than a settings change.
  • Pin the group and mute everything else in Telegram. The alert only earns its place if it is the notification you react to.
  • Read the score before deciding the order to call. The score is in every message so you can triage without opening the CRM.
  • Keep Telegram as the fast channel and email as the record. Telegram messages get lost in scroll and you cannot search leads from there.
  • Give the bot a name your future self will recognize. Six months on, "MyBot2" tells you nothing about which account it belongs to.
  • Do not treat Telegram as a lead channel. Nothing reads replies. For a two way conversation, use SMS or iMessage.

Common problems

Nothing arrives at all. Check in order: the notify box is ticked, the Bot Token is saved, the Chat ID is correct, and you have sent your bot at least one message from your own account. That last one catches most first time setups.

It worked for me but not for the group. A group Chat ID starts with a minus sign and has to be entered with it. Confirm the bot is still a member of the group.

The Bot Token field shows dots and I am not sure it saved. Saved tokens are masked, and a masked field looks the same whether the stored value is right or wrong. Paste it again and save.

Alerts stopped after I revoked the token in BotFather. Revoking issues a new token. Paste the new one under Settings → Integrations.

Related

SMS Notifications (Twilio) · Notifications · Lead Scoring · Webhooks (Zapier, Make, Pabbly)

iMessage Notifications (Sendblue)

Connect your own Sendblue account and you get a second texting channel on every lead record: native iMessage, blue bubbles, with delivery status coming back. It sits alongside SMS as a separate thread on the same lead, so both conversations are visible without being mixed. Sendblue bills you directly.

What it cannot do

The platform does not fall back to SMS for you. If a send fails because the recipient is not on iMessage, the message is marked failed and stays failed. Nothing retries it as a text, so following up over SMS is a decision you make.

It is not wired into automation. There is no iMessage step in email sequences or automations: sends are manual, from the lead record.

One to one text only. No group messages and no attachments.

Setup

  1. Go to Settings → Phone and find the Sendblue: iMessage card.
  2. Paste your Sendblue API Key ID and Sendblue API Secret Key. Both are in your Sendblue dashboard under API Keys.
  3. Click Save Phone Settings. Two more fields appear once the keys are stored.
  4. Copy the Inbound Webhook URL and paste it into your Sendblue dashboard's webhook settings. This URL is unique to your account and it is how replies and status updates find you. Without it you can send, and you will never see a reply or a delivery status.
  5. Invent a secret, set it as the webhook signing secret in Sendblue, and put the same value in Webhook Signing Secret here. Save. The card then reads Signature validation enabled.
  6. Send yourself one message from a lead record to confirm the whole loop.

Step 5 is optional and worth doing. Without a signing secret, inbound events are accepted on the strength of the URL alone, so anyone who obtains that URL can post fake replies and fake opt outs into your account. And if either API key is missing, sends are skipped silently: no error on screen, nothing delivered.

Using it day to day

Open a lead and scroll to iMessage Conversation. The card appears when both Sendblue keys are saved and the lead has a phone number. Type and click Send iMessage, or press Ctrl or Cmd plus Enter.

Statuses arrive over the webhook and update in place: sent, then delivered once it lands, and failed if Sendblue could not deliver. A read receipt is recorded as delivered. When a lead replies, their message threads on the record, and if that lead has an open assignment the assigned team member gets a text with the reply in it. That alert goes out over SMS, so it needs your Twilio credentials configured as well.

SMS and iMessage stay in separate threads on purpose, because they are different channels to the person receiving them. Nothing is copied between the two.

Compliance: a blue bubble is still a text message

iMessage to a mobile number is text messaging to a wireless number, and the TCPA treats it the same as SMS. The channel changes the delivery path, not your obligations: you still need consent before you message a lead, and you still have to honor an opt out.

  • Every iMessage is checked before it is sent. If the number is opted out, the send is refused and logged rather than delivered.
  • STOP is honored using the same keyword list as SMS: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT, OPTOUT, and OPT-OUT. The platform records the opt out and sends back an unsubscribe confirmation.
  • An opt out on either channel covers both, and covers calling too. Someone who texts STOP to your Twilio number will not receive an iMessage from you, and someone who replies STOP over iMessage will not receive an SMS or a call from the dialer.

Two caveats. Opt out capture depends entirely on the inbound webhook in step 4, so an incomplete setup means STOP replies are never recorded and you keep messaging someone who asked you to stop. And a number you add to the Do Not Call list by hand currently blocks calls but not texts, so if a lead asks you verbally to stop, add them to the list and stop messaging them yourself.

Tips to get the most out of it

  • Use it for conversations already in progress, not first contact. A blue bubble from an unknown number is no more welcome than a grey one, and the channel is at its best once someone knows who you are.
  • Watch the delivery status rather than assuming. A failed iMessage is silent on your side, and the status is the only way you learn the recipient is on Android.
  • Set the signing secret on day one. Adding it later means running unverified for however long you waited.
  • Pick one channel per lead and stay in it. Two parallel threads to the same person reads as disorganized on their phone, however tidy it looks on yours.
  • Keep Twilio configured even if iMessage is your main channel. The reply alert to your assigned team member goes out by SMS.

Common problems

The iMessage Conversation card is not on the lead page. One of the two Sendblue keys is missing, or the lead has no phone number.

I can send but replies and statuses never arrive. The Inbound Webhook URL was never pasted into Sendblue, or was pasted incompletely. It contains a long token and the whole URL matters.

Replies stopped after I changed the signing secret. The value in Sendblue and the value in Webhook Signing Secret have to match exactly. Events that fail the check are dropped.

Messages show as sent and never become delivered. Either the webhook is not set, so no status can come back, or the recipient is not reachable by iMessage. Check the webhook first, because that explains every message rather than one.

A message to one lead silently does nothing. That number is on the shared Do Not Call list, most likely from a STOP reply on either channel. Check Phone Phone → Settings.

iMessage cannot be sent in demo mode. Demo accounts cannot send live messages.

Related

Two-Way SMS Inbox · SMS Notifications (Twilio) · Power Dialer · Lead Lifecycle

Content

Content Engine

The Content Engine is one page holding three separate AI content tools, each on its own tab: SEO Content, Social, and Copywriting. They share a page but do genuinely different jobs, so treat them as three tools rather than one.

What each tab does

  • SEO Content writes blog posts targeting the markets and keywords you define, on a schedule, and tracks where those keywords rank.
  • Social turns a blog post or a topic into a set of platform-specific social posts, optionally with generated images.
  • Copywriting generates direct-response copy from a brief you fill in, and saves what you like to a reusable library.

Which one to reach for

A useful order of operations: use SEO Content to publish a post, then Social to promote that exact post, then Copywriting when you need a headline, email, or funnel section that is not a blog post at all. Running them in that order means each tool has something real to work from instead of starting cold.

Before you start

The Content Engine is a paid-plan feature and is not available on a trial. Each of its three tabs is gated separately, so it is possible to have one and not another. If a tab is missing, check Account → Plan. Viewing or using any tab also requires the Content permission, granted under Account → Team.

Common problems

I only see one or two tabs. Each tab is gated separately by plan. See Account → Plan.

A team member cannot open the page at all. They need the Content permission.

Generation fails or returns nothing. These tools run on your own AI provider key. Check Settings → Integrations and confirm the key for your selected provider is present and valid.

Related

SEO Content Engine · Social Content Engine · Copywriting Engine · Blog

SEO Content Engine

The SEO Content Engine writes blog posts aimed at the markets and keywords you care about, on a schedule you set, and then tracks where those keywords actually rank. It is the difference between "generate a blog post" and running an ongoing content program.

Setup

  1. Go to Content → Content Engine. The SEO Content tab opens by default.
  2. Click Add Market and enter a market you actually work, for example a city or county. Add every market you want content for.
  3. Add Custom Keywords for the phrases a motivated seller in that market would search.
  4. Under Generation Schedule, set Posts per week and save with Save Schedule Settings.
  5. Optional but recommended: paste your DataForSEO credentials, click Test Connection, then Save Credentials. This is what powers rank tracking. Without it, generation still works but you will not see rankings.

Using it day to day

You do not need to sit here. Once the schedule is set, posts generate on their own and appear with a Post Status so you can see what is drafted versus published. Use Generate Now when you want a post immediately rather than waiting for the schedule.

The panel worth returning to is Current Rankings, which lists each Keyword alongside its Last Checked date. Review it monthly, not daily: rankings move slowly and daily checking teaches you nothing.

Tips to get the most out of it

  • Be specific with markets. "Franklin County" produces sharper content than "Ohio". Broad markets generate generic posts that rank for nothing.
  • Write keywords the way a seller types, not the way an investor talks. "sell my house fast without repairs" beats "off-market acquisition".
  • Start at a low posts-per-week and raise it once you have read a few. Publishing volume you have not reviewed is how a blog fills with content you would not stand behind.
  • Always read a generated post before it goes out. Treat output as a strong first draft, not a finished page. Use Edit post.
  • Add DataForSEO early. Without ranking data you are generating content with no feedback loop, which makes it impossible to tell what is working.

Before you start

The Content Engine is a paid-plan feature and is not available on a trial. Each of its three tabs is gated separately, so it is possible to have one and not another. If a tab is missing, check Account → Plan. Viewing or using any tab also requires the Content permission, granted under Account → Team.

Common problems

No posts are generating. Check that at least one market exists, that Posts per week is above zero, and that your AI provider key is set under Settings → Integrations.

Rankings are empty or never update. That is DataForSEO, not the engine. Re-run Test Connection.

Posts read generically. Almost always too broad a market or too vague a keyword. Narrow both.

Related

Content Engine · Blog · Social Content Engine

Social Content Engine

The Social Content Engine turns one source, usually a blog post you already published, into a set of platform-specific social posts, optionally with generated images. It exists so promoting a post does not mean rewriting it five times by hand.

How to use it

  1. Go to Content → Content Engine and open the Social tab.
  2. Click Generate Social Posts.
  3. Pick your Source. Selecting an existing Blog Post gives far better output than a bare topic, because the model has real content to draw from.
  4. Choose your Platforms and a Framework for the angle you want.
  5. Click Generate Posts and review each one in Post Preview.
  6. Click Save to Queue for the ones you want to keep. Use Edit Post to fix anything first.

Images

You can generate an image per post and pick its shape: Square, Portrait, Landscape, Infographic, or Minimal. Match the shape to the platform rather than generating one and reusing it everywhere. Generated images can be downloaded individually.

Tips to get the most out of it

  • Always generate from a published blog post when you have one. It is the single biggest quality lever here.
  • Generate more than you need and keep the best two or three. Use Deselect All and select deliberately rather than queueing everything.
  • Vary the Framework across a week so your feed is not five posts with the same shape.
  • Read every post before it queues. Social copy carries your name and a bad one is public immediately.
  • Only ever schedule a post whose link is already live. A queued post pointing at an unpublished URL will render without a preview card.

Before you start

The Content Engine is a paid-plan feature and is not available on a trial. Each of its three tabs is gated separately, so it is possible to have one and not another. If a tab is missing, check Account → Plan. Viewing or using any tab also requires the Content permission, granted under Account → Team.

Common problems

Generation returns nothing. Check your AI provider key under Settings → AI.

Image generation fails while text works. Image generation uses a separate provider and key from text. Confirm that one is set too.

Posts feel off-brand. Generate from a blog post rather than a topic, and pick a Framework instead of leaving it to chance.

Related

Content Engine · SEO Content Engine · Blog

Copywriting Engine

The Copywriting Engine generates direct-response copy from a brief you fill in, then saves what you like into a reusable library. It is for the copy that is not a blog post: headlines, funnel sections, email sequences, ad copy.

How to use it

  1. Go to Content → Content Engine and open the Copywriting tab.
  2. Pick a Copy Type for what you are writing.
  3. Fill in the brief: Target Audience, Pain Points, Offer Details, and Brand Voice Notes.
  4. Choose a Copy Framework, or leave it on Let AI decide if you are not sure which fits.
  5. Set any type-specific fields that appear, such as Platform, Number of Emails, or a Target SEO Keyword.
  6. Click Generate Copy, read the Output, and give it a Label before clicking Save to Library.

Using it day to day

Anything you save appears under Saved Copy, filterable by type. The library is the point: over time it becomes your own swipe file of copy that already sounds like you, which is faster to adapt than generating from scratch every time.

Tips to get the most out of it

  • The brief is the whole game. Output quality tracks the specificity of Pain Points and Offer Details almost exactly. Vague brief, generic copy.
  • Write Pain Points in your seller's own words, the phrases you actually hear on calls, not marketing paraphrase.
  • Fill Brand Voice Notes once and reuse it verbatim. It is what stops every piece sounding like a different company.
  • Always add a Label before saving. An unlabeled library becomes unsearchable fast.
  • Generate two or three variations and keep the best line from each rather than accepting one output whole.
  • Use Let AI decide when you do not know the framework, then note which one it picked for next time.

Before you start

The Content Engine is a paid-plan feature and is not available on a trial. Each of its three tabs is gated separately, so it is possible to have one and not another. If a tab is missing, check Account → Plan. Viewing or using any tab also requires the Content permission, granted under Account → Team.

Common problems

Output is generic. The brief is too thin. Expand Pain Points and Offer Details first, before changing anything else.

Generation fails. Check your AI provider key under Settings → AI.

I cannot find copy I saved. It was probably saved without a Label. Filter Saved Copy by Copy Type to narrow it down.

Related

Content Engine · SEO Content Engine · Funnel Page Content & Branding

Blog Categories

Blog Categories organize your posts, drive the category filters on your public blog, and are what Blog CTAs target. They are worth setting up before you publish much, because re-categorising later means revisiting posts.

How to use it

  1. Go to Content → Categories.
  2. Click Add Category and name it.
  3. Set a Sort Order to control where it appears in your blog's category list. Lower numbers come first.
  4. Save Changes.

The Posts column shows how many posts sit in each category, which is the fastest way to spot a category you created and never used.

Tips to get the most out of it

  • Fewer categories, used consistently, beat many used once. Five or six is usually right. Twenty categories with one post each helps nobody navigate.
  • Name them the way a seller thinks, not the way you file things. "Foreclosure" and "Inherited Property" are searches. "Market Commentary" is not.
  • Set up categories before a bulk publish. Assigning them at write time costs nothing; fixing 40 published posts costs an afternoon.
  • Remember Blog CTAs target categories. A category is not just a label, it is a targeting key for the call-to-action a reader sees. That is a reason to keep them meaningful.

Common problems

A category will not delete. Move or delete its posts first, then remove the category, so you never leave posts stranded.

My categories appear in the wrong order. That is Sort Order, not alphabetical. Lower numbers first.

A team member cannot open this page. It requires the Content permission, granted under Account → Team.

Related

Blog · Blog CTAs · SEO Content Engine

Blog CTAs

Blog CTAs are the call-to-action blocks that render underneath your public blog posts. They are how a reader who just finished a post gets pushed into a funnel instead of leaving.

How targeting works

This is the part worth understanding before you create any: one CTA can be live per post category, plus one default. A CTA tagged with a category shows only on posts in that category. The default covers everything else.

If nothing here is live, posts fall back to the CTA fields in Settings → Blog, and if those are empty, to a built-in default. So your posts always have some CTA. The question is whether it is one you chose.

Setup

  1. Go to Content → Blog CTAs.
  2. Click Add CTA.
  3. Write the Heading, the Button Text, and the button destination.
  4. Optionally set a Category to target one group of posts. Leave it empty to make this your default.
  5. Save, then Activate it. A CTA that exists but is not activated does not render, and the Live now marker tells you which one is actually showing.

Tips to get the most out of it

  • Match the CTA to the post's intent. A reader finishing a foreclosure post wants a different next step than one reading about lease options. That is the entire reason category targeting exists.
  • Set a default first, then add category CTAs. The default is your safety net.
  • Write the button as an action, not a label. "Get my cash offer" beats "Submit".
  • Point it at a funnel, not your homepage. A homepage makes the reader start over.

Common problems

My CTA is not showing. Confirm you clicked Activate and look for Live now. Only one CTA per category can be live at a time.

The wrong CTA shows on a post. That post's category has no live CTA, so it fell through to your default.

A CTA I never created is showing. Nothing is live, so it fell back to Settings → Blog or the built-in default.

Related

Blog · Blog Categories · Funnel Types

Media Library

The Media Library is the central place for every image you use across funnels, property pages, and blog posts. Upload once, reuse anywhere, instead of hunting for the same photo on your desktop every time.

What is in it

You can Upload Images, browse and search what you have already uploaded, rename files, and delete them. Sort by Newest or Oldest. Everything is scoped to your account, so you only see your own media.

Stock photos are built in

The Stock Photos tab searches Pexels from inside the library, so you can find and pull in a free stock image without leaving the admin or opening a separate site. This is the most commonly missed feature here: people upload stock photos they downloaded manually, not realising they can search from this screen.

Formats

Standard web image formats including JPEG and WebP are supported. Anything else is rejected as Unsupported rather than silently failing.

Tips to get the most out of it

  • Rename files as you upload them. A library of IMG_4471.jpg is unsearchable within a month. "walton-pkwy-kitchen" costs two seconds and saves ten minutes later.
  • Resize before uploading. Camera-original photos make property pages slow, and slow pages lose mobile visitors before the first image renders.
  • Prefer WebP for anything above the fold. Noticeably smaller than JPEG at the same quality.
  • Use stock for concept images, your own photos for properties. A stock kitchen on a real listing reads as dishonest, and buyers notice.
  • Delete rejected property photos once a deal closes. The library is easier to work with when it holds what you actually use.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

My upload was rejected as Unsupported. Convert it to JPEG or WebP first. HEIC from an iPhone is a common culprit.

I cannot find an image I know I uploaded. Search by filename, which is why renaming on upload matters. Also check the sort order.

An image I deleted still shows on a page. That page holds its own reference. Update the page to point at a current image.

Related

Property Gallery · Funnel Page Content & Branding · Blog

FAQ Management

FAQs answer objections on the page so you do not answer them on the phone. They are organized into categories, and a category is then assigned to a funnel page, which is what lets one set of FAQs serve several pages.

How the structure works

You do not attach individual questions to pages. You group questions into a Category, then use FAQ Assignments to decide which funnel page shows which category. Change a question once and every page using that category updates.

Setup

  1. Go to Content → FAQs.
  2. Click Add FAQ and write the Question and Answer.
  3. Put it in a Category that matches the audience.
  4. Make sure it is Active.
  5. Use FAQ Assignments to attach that category to the funnel pages that should show it.

Tips to get the most out of it

  • Write the objections you actually hear, in the words callers use. "Will I have to pay closing costs?" is a real question. "What is your process?" is not.
  • Answer honestly, including the unflattering ones. "Will I get full market value?" deserves a straight answer. Ducking it costs you more trust than the truth does.
  • Keep one category per audience. Seller objections and cash buyer objections have almost nothing in common.
  • Every repeated phone question belongs here. If you have explained something three times this week, it is an FAQ, and adding it buys back your time permanently.
  • Lead with the money question. It is what they are actually wondering, and burying it makes the whole set feel evasive.

Common problems

My FAQ is not appearing on a page. Two things to check: it must be Active, and its Category must be assigned to that page under FAQ Assignments. The assignment is the step people miss.

The wrong FAQs show on a funnel. That page is assigned a different category.

A team member cannot manage FAQs. Requires the Content permission.

Related

Reviews & Social Proof · Funnel Page Content & Branding · AI Concierge

Reviews & Social Proof

Reviews are the social proof blocks on your funnel pages. A seller deciding whether to call a stranger about their house is reassured by other people who did it, and this is where those testimonials are managed.

Adding one

  1. Go to Content → Reviews and click Add Review.
  2. Enter the Name and the Quote.
  3. Add an Avatar Image URL if you have a photo.
  4. Choose which Funnel it should appear on.
  5. Set a Display Order to control where it sits among the others.
  6. Save, then approve it so it goes live.

Approval and visibility

Reviews carry a status: Pending until you approve them, then Approved, and an Active toggle that controls whether an approved review actually displays. Two separate controls, which means an approved review can still be switched off without deleting it.

Reviews are assigned per funnel, so a seller page and a cash buyer page can show entirely different proof, which is how it should be.

Tips to get the most out of it

  • Match the review to the audience. A seller wants to hear from another seller. A testimonial from an investor on your seller page does nothing.
  • Specific beats glowing. "Closed in 11 days and I did not have to fix the roof" outperforms "Great to work with" by a wide margin, because it is falsifiable and therefore believable.
  • Put your strongest one first with Display Order. Most visitors read one.
  • Ask for these right after closing, when the relief is fresh. Two weeks later you get a polite sentence instead of a real one.
  • Use a first name and a real photo where you have permission. Anonymous quotes read as invented.
  • Turn one off rather than deleting it if you need it gone temporarily.

Common problems

My review is not showing. Check both controls: it must be Approved and Active. One without the other is not enough.

It is on the wrong page. Reviews are assigned per Funnel. Reassign it.

The avatar is broken. Avatar Image URL needs a direct link to an image file, not to a page containing one.

A team member cannot manage reviews. Requires the Content permission, under Account → Team.

Related

Funnel Page Content & Branding · FAQ Management · Media Library

AI Concierge

The AI Concierge is a chat widget that appears on your public site (your homepage and your blog) and answers visitor questions in your own words, then points them toward the right funnel. Every conversation is saved, so it doubles as a running record of what visitors actually want to know.

What it can and cannot do

It is answer-only by design. It can respond to questions and recommend a funnel. It cannot take actions, book appointments, or read your leads, deals, or any other records. Nothing a visitor types can reach your data.

Setup

  1. Add your own API key under Settings → AI for whichever provider you plan to use. The Concierge runs on your key, not ours.
  2. Go to Settings → AI.
  3. Turn on Enable Concierge.
  4. Pick your Primary model. Haiku is the default and is the cheapest sensible choice for this job.
  5. Optionally set a Secondary and Backup model and turn on Auto-Fallback, so the widget keeps answering if your primary provider returns an error.
  6. Write a Greeting (up to 500 characters). This is the first thing a visitor sees.
  7. Add Extra context (up to 4,000 characters) describing your market, your buy criteria, and anything you want it to say or avoid.
  8. Set a Daily message cap. The default is 150.
  9. Choose Position, left or right.

Using it day to day

Go to Content → Concierge Chats for a list of sessions. Each row shows when the conversation started, how many messages the visitor sent, their first question, and the page they were on. Click any session for the full transcript. The view is read-only, and you only ever see your own organization's conversations.

The habit worth building: skim the transcripts once a week and read the first question in each one. A visitor's opening question is usually the thing your page failed to explain. The page column tells you exactly where they were standing when they got confused.

Tips to get the most out of it

  • Write Extra context like you are briefing a new assistant on day one. Your market, the property types you buy and the ones you refuse, your timeline, how you want to sound. An empty context field is the number one cause of vague answers.
  • Put your real buy criteria in. Then the Concierge can pre-qualify a seller before they ever reach a form, instead of sending you everything.
  • Name your funnels in the context and say who goes where. Sellers to the seller funnel, cash buyers to the buyer list. Otherwise it guesses.
  • Make the greeting a question, not a statement. "What are you trying to sell?" starts more conversations than "Hi, how can I help?"
  • Feed recurring questions back into the site. If three visitors ask the same thing, that is an FAQ entry (Content → FAQs) or a blog post, not a question you should keep answering by chat.
  • Start on Haiku and only move up a tier if answers are genuinely too shallow. This is short-answer work and the cheap model usually handles it.
  • Treat the daily cap as a budget, not a target. It exists so an unusual traffic day cannot produce an unusual bill.

Common problems

The widget does not appear on my site. Almost always a missing API key. If the key for your selected provider is blank, the widget stays hidden on purpose rather than showing visitors a broken chat box. Check Settings → AI first, then confirm Enable Concierge is on.

It stopped answering partway through the day. You have hit your Daily message cap. Raise it in Settings → AI.

Answers are generic or wrong about my business. Add more to Extra context.

A team member cannot open Concierge Chats. Viewing transcripts requires the Content permission. Grant it under Account → Team.

Related

Funnel Types · FAQ Management · Team Members & Access Control

Direct Mail

Direct Mail (Lob)

Direct Mail prints and mails a physical postcard or letter to a lead without you leaving the CRM. This article covers connecting a provider and sending one piece. To mail a filtered list at once see Bulk Direct Mail, and for the pieces themselves see Mail Templates.

Read this first

Mail cannot be recalled. Once a piece is accepted by the provider it is printed, paid for, and on its way. Always send one test piece to your own address and hold it in your hand before anything goes to a lead. Your provider bills you directly, per piece.

Setup

  1. Create an account with a mail provider. Lob and Click2Mail are both supported.
  2. Go to Settings → Integrations and find Lob: Direct Mail.
  3. Paste your key into API Key and save. A key beginning test_ puts you in test mode: mail is simulated at no cost and nothing is printed. A key beginning live_ sends real mail. The panel tells you which mode you are in.
  4. Copy the read-only Webhook URL and add it as an endpoint in your provider dashboard, subscribed to all postcard.* and letter.* events. This is what makes delivery tracking appear in your mail history. Optionally paste the endpoint's signing secret into Webhook Signing Secret.
  5. Fill in your return address under Settings → General, in the Owner / Branding card: Owner Name, Street Address, City, State, ZIP Code. Every piece needs a complete return address and sending fails without one.

Sending one piece

  1. Go to Direct Mail → Send.
  2. Choose a Mail Type: Postcard (4×6) or Letter (8.5×11).
  3. Pick the Lead / Recipient. This is required, not optional, and their address pre-fills the fields below. Leads with nothing on file are marked "(no address)".
  4. Check the Recipient Address fields and correct anything wrong.
  5. Load a template into the content fields, or write the HTML yourself, and use Preview to open the piece in a new tab first.
  6. Click Send Mail Piece.

Mail History beside the form lists your last 50 pieces. Statuses run queued, created, rendered, in transit, delivered, or fall out to failed or returned.

Tips to get the most out of it

  • Stay on a test key until you have stopped editing. Test mode is free and exercises the whole path, a far cheaper place to find a broken layout than the mail stream.
  • Then send one live piece to yourself. A browser preview does not prove it prints, folds, or lines up in a window envelope.
  • Fix addresses at the source. Correcting a typo in the send form mails that one piece correctly and leaves the lead record wrong for next time.
  • Keep single sends for specific people. Volume belongs in Bulk Send, where the spend caps are.

Common problems

There is no Direct Mail section in the sidebar. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

"No direct mail provider configured." No API key is saved. Add one under Settings → Integrations.

"Return address is incomplete." Your business address is missing a line. Fill in street, city, state, and ZIP under Settings → General.

"Recipient address is incomplete." The lead has no usable mailing address. Complete the fields in the form, or better, fix the lead record first.

A merge field printed literally, as {{first_name}}. Variable names are uppercase: {{FIRSTNAME}}, {{LASTNAME}}, {{FULLNAME}}, {{EMAIL}}, {{PHONE}}, {{PROPERTY_ADDRESS}}, the {{TO_*}} address set, and the {{OWNER_*}} set for your own details. Anything else prints as written.

Nothing was delivered but the status says created. If your key starts with test_ that is correct, nothing was printed.

Status never advances past created on a live key. The provider webhook is not set up. Add the Webhook URL in your provider dashboard.

Related

Bulk Direct Mail · Mail Templates · Skip Tracing

Mail Templates

Mail Templates are the reusable pieces your direct mail sends: letters and postcards, stored as HTML so they can be merged with each recipient's details.

Letters and postcards differ

A letter needs one block, Letter HTML. A postcard needs two, Front HTML and Back HTML. A postcard saved with only one side will not send.

How to use it

  1. Go to Direct Mail → Templates.
  2. Pick a template to Edit Template, or start from one of the System templates, which are provided as working starting points.
  3. Edit the HTML and Save Changes.
  4. Use Send Direct Mail to send a single piece, or Bulk Send for many.

Tips to get the most out of it

  • Duplicate a System template rather than editing it. Keeps a known-good original to fall back to.
  • Always send one real piece to yourself before using a template at volume. Rendering in a browser is not proof it prints and folds correctly, and address alignment in a window envelope can only be checked in hand.
  • Keep postcard artwork inside the trim. Anything near the edge risks being cut.
  • Write one template per audience. A seller letter and a lender letter should not be the same piece with a word swapped.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

A postcard will not save or send. Both Front HTML and Back HTML are required.

Merged details are blank on the printed piece. The recipient is missing that field. Check the lead record.

I cannot delete a template. Templates with real mail history are protected so your records stay intact. Deactivate it instead.

Related

Direct Mail (Lob) · Bulk Direct Mail

Bulk Direct Mail

Bulk Direct Mail sends one mail piece to many leads at once, selected by filters rather than one at a time. It is the difference between mailing a list and mailing a person.

⚠️ Read this first

Mail cannot be recalled. Once a bulk job is sent, every piece is paid for and on its way. Always check the recipient count and preview the piece before sending, and always test with a single piece to your own address before your first real drop.

How to use it

  1. Go to Direct Mail → Bulk Send.
  2. Choose your Mail Type.
  3. Narrow the audience with Funnel Type, Min Lead Score, and Has Mailing Address.
  4. Set Max Recipients. Treat this as a spend cap, not a formality.
  5. Review the Results count. This is the number of pieces you are about to pay for.
  6. Send.

Tips to get the most out of it

  • Always filter on Has Mailing Address. Without it you will pay to attempt leads with no deliverable address.
  • Use Min Lead Score to mail your best leads first. Mailing everyone equally is how a budget disappears with nothing to show.
  • Set Max Recipients low on a new template. Mail 50, see the response, then scale. Discovering a bad headline on piece 3,000 is expensive and unrecoverable.
  • Segment by Funnel Type. A seller and a private lender should not get the same letter.
  • Send yourself one piece first and check it in hand, especially address alignment in a window envelope.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

The recipient count is far lower than expected. Usually Has Mailing Address combined with a Min Lead Score. Loosen one filter at a time.

The count is zero. No leads match. Check that your leads actually have mailing addresses stored.

Sending fails. Your mail provider credentials and return address must be configured first. See Direct Mail setup.

Related

Direct Mail (Lob) · Mail Templates · Lead Scoring

Automation & Email

Email Sequences

An email sequence is a series of emails that go out automatically after something happens, each one delayed by however long you choose. It is what turns a lead who filled in a form at 11pm into a conversation without you being awake.

Where to find it

Sequences live under Settings → Automations. The old standalone Automations page now redirects there, so an old bookmark will still land you in the right place.

Building one

  1. Go to Settings → Automations.
  2. Give it a Sequence Name you will recognize later.
  3. Pick the Trigger that starts it, such as a new lead being created or a deal being created.
  4. Add your Steps. Each step is one email with a subject, an Email Body (HTML), and a Delay (hours) measured from the trigger.
  5. Save. Last Triggered then tells you when it most recently fired.

How the timing works

Delays are in hours from the trigger, not from the previous email. A sequence with delays of 0, 24, and 72 sends immediately, then a day later, then three days after the trigger. Getting this backwards is the most common sequence mistake, because treating them as gaps between emails silently stretches your whole timeline.

Tips to get the most out of it

  • Send the first email at delay 0. Speed to lead is the single biggest predictor of contact, and an email that arrives while they are still on your site is worth more than a better email tomorrow.
  • Write it as one person to another. Sequences that read like newsletters get ignored. Short, plain, and personal outperforms designed every time in this business.
  • Ask a question in the first email. The goal is a reply, not a click.
  • Front-load the sequence. Most of your response comes in the first 72 hours. Five emails in the first week beats fifteen spread over two months.
  • Build a separate sequence per audience. A distressed seller and a cash buyer should never get the same emails, and the trigger makes it easy to keep them apart.
  • Send yourself through it first. Submit your own form and read what arrives, in the order it arrives.

Common problems

Nothing sends at all. Check your sending email is configured first. See Email (SMTP), because a sequence with no working mail setup queues silently and delivers nothing.

The timing is wrong. Delays are from the trigger, not from the previous step.

A lead got no emails. They may have opted out. Opt-outs are respected automatically and permanently.

Last Triggered is empty. The sequence has never fired, which usually means the trigger does not match how those leads actually arrive.

Related

Automation Queue & Scheduling · Email (SMTP) · Notifications · Lead Lifecycle

Automation Queue & Scheduling

When a sequence fires, its emails are not sent instantly one by one. They are placed in a queue with a scheduled send time, and a background process works through that queue. Knowing this explains most of the "why has it not sent yet" questions.

What actually happens

  1. A trigger fires, for example a new lead arrives.
  2. Every step of the sequence is queued at once, each stamped with its own send time based on its Delay (hours).
  3. A background processor runs on a schedule, picks up everything now due, and sends it.
  4. Each send is logged, so there is a record of what went out and when.

The same processor handles SMS drip campaigns, so both share this behavior.

What this means in practice

A delay of 0 means "as soon as the next run happens", not "this second". There is normally a short gap between a form submission and the first email landing. That is the queue working correctly, not a fault.

It also means a queued email is already scheduled. Editing a sequence changes what future triggers will do; it does not rewrite what is already sitting in the queue for leads who triggered it earlier.

Tips to get the most out of it

  • Do not judge a sequence in the first minute. Wait for a couple of processing cycles before deciding it is broken.
  • Test with a real submission, not by imagining it. Submit your own form and watch what arrives and when. That tells you your true speed to lead.
  • Fix a bad sequence, then re-test with a fresh lead. Leads already in the queue keep their original schedule, so correcting a typo does not fix the emails already queued.
  • Keep opt-outs in mind. A queued email to someone who has since opted out will not send, which is correct behavior.

Common problems

My email has not arrived yet. Give it a processing cycle. If minutes turn into hours, check your sending configuration under Email (SMTP) before anything else.

I fixed a typo but the wrong version still went out. Expected. Those sends were already queued.

Nothing in the queue is ever sending. This is platform-side rather than something you configure. Contact support and mention that queued automations are not processing.

Related

Email Sequences · Email (SMTP) · Notifications

Notifications

Notifications are the in-app alerts that tell you something happened without you having to go looking: a lead arrived, an appointment was booked, something needs attention. They are separate from the emails your leads receive.

How they work

Each notification carries a title, a message, and a link straight to the thing it is about, so you can act on it in one click rather than hunting for the record. They are marked read once you have seen them, and they are scoped to your account, so you only ever see your own.

Notification email

Separately from in-app alerts, you can set a Notification Email under Settings → Email. That is the address that receives alerts about new leads and other events, and it is the one to get right, because it is what reaches you when you are not logged in.

Tips to get the most out of it

  • Point the notification email at whatever you actually read all day. An alert going to an inbox you check weekly is not an alert.
  • Click the link rather than navigating manually. It takes you to the exact lead or appointment, which matters when you are responding fast.
  • Clear them as you handle them. A list of a hundred unread notifications stops being information and becomes wallpaper.
  • Do not rely on notifications as your pipeline. They tell you what just happened. Your lead filters tell you what still needs doing. Those are different jobs.

Common problems

I am not getting notification emails. Confirm a Notification Email is set under Settings → Email, and that your sending configuration works. No working mail setup means no alerts.

Alerts go to the wrong person. There is one notification email address. Use a shared or forwarding address if several people need them.

I see notifications a colleague does not. They are per account, which is intended.

Related

Email (SMTP) · Email Sequences · Team Members & Access Control

Email (SMTP)

This is the setting that decides whether any email leaves your account. Sequences, notifications, and lead alerts all depend on it, so it is worth configuring before you build anything that sends.

Setup

  1. Go to Settings → Email.
  2. Enter your SMTP Host and Port.
  3. Enter the SMTP username and password from your email provider.
  4. Set the encryption method your provider requires.
  5. Set the From Email Address, which is what recipients see.
  6. Set the Notification Email, which is where your own alerts go.
  7. Click Save Email Settings, then send yourself a test.

Tips to get the most out of it

  • Send from your own domain, not a free mailbox. A From address at a free provider gets filtered far more often, and it does not look like a business.
  • Set up SPF, DKIM and DMARC on your domain. This is the difference between landing in the inbox and landing in spam, and it matters more than anything you write.
  • Use a real, monitored From address. Sellers reply to these emails. A noreply address throws away replies from exactly the people you want to hear from.
  • Test before building sequences. Otherwise you build a five-step sequence on top of a mail setup that never worked, and everything queues silently.
  • Warm up a brand new domain gradually. Going from zero to hundreds of emails a day is how a new sending domain gets throttled.

Common problems

Nothing sends and there is no error. The most common cause is a wrong port or encryption combination. Check both against your provider's documented settings.

Authentication fails. Many providers require an app-specific password rather than your normal login password.

Emails send but land in spam. That is domain authentication, not this screen. Set up SPF, DKIM and DMARC.

Sequences show as triggered but nothing arrives. Almost always this configuration. Fix it here first before investigating the sequence.

Related

Email Sequences · Automation Queue & Scheduling · Notifications

Email List Sync

Email list sync pushes new leads into an outside email marketing platform automatically, so a lead who submits a form ends up on the list you already send broadcasts from, without you exporting anything.

Setup

  1. Go to Settings → Integrations and choose your Email List Provider.
  2. Enter the credentials that provider requires.
  3. Open the form you want synced and go to its Integrations tab in the Form Builder.
  4. Set the List ID for the list those leads should join. A form showing Not configured is not syncing anywhere.
  5. Submit a test lead and confirm it appears in your provider.

Using it day to day

Sync happens per form, not per account, which is deliberate: it lets you send seller leads to one list and cash buyers to another from the same setup. It also means adding a new form does not automatically sync it, so a new funnel can quietly collect leads that never reach your list.

Tips to get the most out of it

  • Use a separate list per audience. One list containing sellers and buyers means every broadcast is wrong for half of it.
  • Set the List ID when you build the form, not later. Leads that arrive before it is configured do not backfill.
  • Keep the CRM as your source of truth. Your email platform is for broadcasts; the lead record, notes and status live here.
  • Check any new form. Every new funnel is a chance to forget this step, and the failure is silent.
  • Respect opt-outs on both sides. Someone who unsubscribes in your email platform has opted out, whatever your CRM says.

Common problems

Leads are in the CRM but not in my email platform. That form has no List ID set, or shows Not configured.

It worked and then stopped. Provider credentials expired or were rotated. Re-enter them under Settings → Integrations.

Old leads did not sync. Sync applies to new submissions only. Export and import to backfill.

Related

Form Builder & Field Types · Email Sequences · Export Your Data

Analytics & Attribution

Dashboard Metrics

The Dashboard is the page you land on after logging in, and it answers one question: what changed since last time. Lead counts run across the top, then a stack of widgets covering hot leads, follow-ups, the deal pipeline, and recent activity. You decide which widgets appear and in what order.

Reading the stat cards

The cards count leads, one per funnel type plus a Total Leads card: Sellers, Buyers, Investors, Apprentices, Lenders, Providers, Reviews, Sessions, and Staff. The dropdown at the top left sets the window: All Time, Today, This Week, This Month, or This Year. The arrow under each number compares that window against the previous equivalent one, so This Month compares against last month. On All Time it compares a rolling last 7 days against the 7 days before.

What the widgets actually show

Hot Leads lists the five highest scoring leads still on status new. Follow-up Needed splits into Never Contacted and Overdue (7d+). Deal Pipeline and Deal Value break deals down by stage and by dollars. Conversion Rate is closed deals divided by leads for the current month, with the change from last month underneath. Lead Score Distribution buckets every lead as hot (80 and above), warm (50 to 79), or cold (below 50). Quick Add logs a lead, deal, or property without leaving the page, and Live Funnels gives per-funnel stats with a copy-URL button.

Customizing the layout

  1. Click the sliders icon at the top right of the stats toolbar, next to View Site.
  2. Under Choose which stat cards to display, check only the funnels you actually run.
  3. Under Sections, check the widgets you want. Quick Add is off by default and worth turning on.
  4. Under Section Order, use the up and down arrow buttons to move a section.
  5. Click Save. The page reloads with your layout.

Quick Add and Live Funnels can be shown or hidden but not reordered.

Tips to get the most out of it

  • Turn off every funnel you are not running. Nine stat cards reading zero is nine places your eye has to skip. Two live funnels on screen is a dashboard you will actually read.
  • Move Follow-up Needed and Hot Leads to the top. They are the only two widgets that tell you to do something today. Charts are review material, not morning material.
  • Use the period dropdown as a sanity check, not a report. Flip to This Week once on Monday. If the trend arrow points down two weeks running, the problem is upstream in traffic, not in your follow-up.
  • Read Conversion Rate as a direction, not a benchmark. It compares deals closed this month against leads created this month, and those are rarely the same leads.
  • An empty Hot Leads widget is the goal. Treat a full one as a to-do list, not a status report.

Common problems

I rearranged the dashboard and now my teammate sees my layout. Dashboard preferences are saved for the whole organization, not per user. Everyone in your account shares one layout.

Dragging the grip handle in Section Order does nothing. Reordering works only through the up and down arrow buttons on each row.

I unchecked a section and it came back. Changes apply only after you click Save. Clicking Cancel or navigating away discards them.

My Deal Pipeline numbers are lower than the owner's. When you are signed in as a team member, Deal Pipeline, Deal Value, and Conversion Rate count only deals assigned to you. Lead counts are not filtered that way.

Hot Leads is showing leads with low scores. The widget takes your top five uncontacted leads by score. If your best untouched lead is a 32, that is what it shows.

Deal Pipeline, Deal Value, or Properties will not appear no matter what I check. Deal widgets require the Deals permission and the properties widget requires Properties. Grant them under Account → Team.

Related

Available Reports · Lead Prediction (AI Scoring) · Marketing Attribution

Available Reports

The Analytics page answers "how is this performing" rather than "what happened today". It is four tabs of read-only reports: Funnel Analytics, Lead Analytics, Property Analytics, and Appointment Analytics. Everything is scoped to your own organization and filtered by a date range you set on each tab.

What each tab covers

Funnel Analytics is form performance: Total Visits, Total Submissions, Conversion Rate, and Avg Completion Time, plus a Visits & Submissions chart, Funnel Distribution, Lead Quality, and a Per-Funnel Conversion Rates table. Choose a single funnel in the Funnel dropdown and a Field Performance Report is added.

Lead Analytics turns your list into dollars of opportunity. Sellers show Equity Potential, Total Property Value, and Avg Equity / Lead. Buyers show Down Payment Pool and Avg Down Payment. Investors show Cash to Invest, Buying Power, and Avg Cash / Investor. Lenders, apprentices, and sessions show their most common answers, with distribution charts underneath.

Property Analytics covers inventory and deals: Total Properties, Published, Inventory Value, Total Deals, Total ARV, Total Offers, Avg Days on Market, and Offer-to-ARV Ratio, plus charts for deal type, property type, and pipeline status.

Appointment Analytics covers bookings: Total Bookings, Completed, Completion Rate, Cancellation Rate, and a Team Member Workload breakdown.

What is not here

There is no CSV or PDF export and no scheduled email report. There is also no traffic source or campaign reporting on this page: source, campaign, and device performance live on the Attribution page instead.

Using it day to day

  1. Open Analytics from the sidebar.
  2. Pick a tab.
  3. Set From and To, then click Filter. Each tab carries its own date range, so set it again after switching tabs.
  4. On Funnel Analytics, set Funnel to one funnel type to unlock the field-level report.

Tips to get the most out of it

  • Compare funnels, not months. Per-Funnel Conversion Rates is the highest value table on this page. One funnel converting at triple another is a reason to move budget today.
  • Use Lead Analytics to price your ad spend. Cash to Invest and Down Payment Pool are the buying power sitting in your list. That tells you what a lead is worth, which tells you what you can afford to pay for one.
  • Match the date range to your sales cycle, not the calendar. A 30 day window on a 60 day cycle will always look like you are losing.
  • Screenshot the tab you care about weekly. With no export, a dated screenshot in a folder is your only historical record.
  • Check Offer-to-ARV Ratio before you blame lead quality. If your offers are creeping toward ARV, the problem is your underwriting.
  • Treat a rising Cancellation Rate as a booking problem. Look at reminder timing before you question the leads.

Common problems

Total Visits and Conversion Rate shifted sharply on 10 August 2026. Until then Total Visits counted only sessions that submitted a form or triggered a validation error, which made it far too low and pushed Conversion Rate close to 100%. It now counts every session that viewed one of your funnel forms, so the rate reflects reality. Days before the change keep their original figures and cannot be recalculated, which is why the chart steps at that date.

Avg Completion Time says No data and the Field Performance Report is empty. Both read from per-field tracking that is not being collected yet. Nothing is misconfigured on your side.

Every tab is empty. The reports read from your own leads, properties, and bookings, and the default window is the last 30 days. Widen From and To before concluding there is no data.

I changed the dates and the numbers did not move. Click Filter. The date inputs do not apply on their own.

A team member cannot open Analytics. The page requires the Analytics permission. Without it the sidebar link is hidden and the page is denied. Grant it under Account → Team.

Related

Dashboard Metrics · Marketing Attribution · Advanced Attribution

Marketing Attribution

Attribution answers one question: which ad, email, or post produced this lead. InvestorFunnel captures it for you. When someone submits any funnel form, the platform stores the UTM parameters that were on the link they arrived through, along with the referring page and the device they used. You get source and campaign reporting without installing anything.

What gets captured

One attribution record is written per lead at the moment the form is submitted: utm_source, utm_medium, utm_campaign, utm_content, utm_term, the referring URL, the device type (mobile, tablet, or desktop), and a session ID held in a cookie for 30 days. All ten funnel types carry the UTM values through automatically, so there is nothing to add per funnel.

Because the record is written at submission, what you are reading is the campaign the lead came in on. Step-by-step journey history is not stored yet, so treat today's numbers as last touch. The five model views on the Attribution page are covered in Advanced Attribution.

Setting up tracking

  1. Decide on a naming convention before you build a single link. Lowercase, no spaces, and a source name you will still recognize in six months.
  2. Add utm_source, utm_medium, and utm_campaign to every ad, email, and social link pointing at a funnel. For example: yoursite.com/seller?utm_source=facebook&utm_medium=cpc&utm_campaign=spring-sellers
  3. Use utm_content to separate two creatives inside one campaign, and utm_term for the keyword on paid search.
  4. Click your own link and submit a test lead. The source should appear in your reporting straight away.

Where to read it

Source, campaign, and device reporting sit on the Attribution page in the sidebar. Each table shows Leads, Conversions, Avg Score, Revenue, and an Attribution Credit bar for the From and To dates at the top. Four cards summarize the range: Tracked Leads, Active Sources, Active Campaigns, and Attributed Revenue.

The Attribution page is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Tips to get the most out of it

  • Tag everything, including the links you think you do not need to tag. Untagged traffic does not disappear from your reports. It piles into one anonymous row and quietly makes your best channel look average.
  • Keep utm_source to the platform and utm_medium to the type of traffic. Use facebook plus cpc, not facebook-paid-ads-january. The specifics belong in utm_campaign.
  • Never rename a campaign mid-flight. Renaming splits one campaign into two rows and you lose the comparison. Start a new campaign instead.
  • Read Avg Score, not just Leads. A source sending 200 leads at an average score of 20 is worse than one sending 30 at 70. Volume is the vanity number here.
  • Tag your email signature and your business cards. Referral traffic is usually the best converting source you own and almost nobody measures it.

Common problems

Every lead shows the same source, or the Source column is blank. That is untagged traffic: someone typed your URL, clicked a link with no UTM parameters, or came from a platform that strips them. Fix it at the link, not in the report.

No attribution data found for this date range. Either no leads arrived in the range, or the ones that did came through links without UTM parameters. Widen the dates first, then confirm your ad link still carries its parameters after every shortener and redirect in the chain.

Leads I entered by hand are missing from Tracked Leads. Attribution is written only when a lead submits a funnel form. Leads created through Quick Add get a source of manual and no attribution record.

My link shortener broke my UTMs. Some shorteners and ad platforms drop the query string on redirect. Put the parameters on the final destination URL and test the shortened link end to end.

Revenue shows a dash. Revenue counts only deals that reached closed status.

A team member cannot see the Attribution link. The sidebar link requires the Analytics permission on top of the plan. Grant it under Account → Team.

Related

Advanced Attribution · Analytics Integrations · Available Reports

Advanced Attribution

Advanced Attribution is the reporting side of tracking where your leads come from. Where the foundational article covers what gets captured, this one covers the Attribution page and how to read it.

What the page shows

  • Active Sources and Active Campaigns: what is currently producing.
  • Campaign Performance: leads, Conversions, Conv Rate and Avg Score per campaign, which is how you tell a campaign that produces volume from one that produces quality.
  • Device Performance: desktop versus mobile.
  • Attributed Revenue and Attribution Credit.
  • Medium and Campaign breakdowns, plus Sessions.

What it cannot do, stated plainly

Two limits worth knowing before you build decisions on this page.

There is no attribution panel on an individual lead record. Attribution is a reporting view, aggregated across leads. If you want to know one specific lead's source, read the source column on the leads list rather than looking for a panel on their detail page.

Switching between the attribution model tabs changes the label, not the maths. Credit is currently computed the same way regardless of which model is selected. Treat the models as descriptive rather than as five different calculations.

Tips to get the most out of it

  • Tag every link you control. Attribution is only as good as your UTM discipline, and one untagged campaign shows up as a blank source that tells you nothing.
  • Compare Conv Rate and Avg Score together, not leads alone. The campaign with the most leads is frequently not the one making you money.
  • Use a distinct funnel URL per channel as a backstop. If UTMs get stripped somewhere in the chain, the URL still tells you where the lead came from.
  • Check Device Performance before redesigning anything. If most of your leads are mobile, that is the only view that matters.
  • Read it weekly, act monthly. Attribution data is noisy at low volume and you will chase ghosts if you react daily.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

Some leads show a blank source. They arrived without UTM parameters, most often from direct traffic, a link someone typed, or a channel that strips parameters. It means untagged, not untracked.

The numbers do not match my ad platform. They never will exactly. Ad platforms count clicks; this counts leads that submitted a form. Use it for relative comparison between your own channels, not for reconciliation.

Revenue looks wrong. Attributed revenue depends on deal records being created and closed. A pipeline nobody updates produces attribution nobody can trust.

Related

Marketing Attribution · Analytics Integrations · Sharing Your Funnels

Lead Prediction (AI Scoring)

Every lead that arrives through a funnel form is scored automatically so you know who to call first. There are two numbers and they are not the same thing. The lead score is a rule-based grade out of 100, calculated the instant the form is submitted, and it is where the hot, warm, and cold badges come from. The AI Prediction is a separate conversion probability that learns from your own history. Start with the lead score: it does most of the work.

How the lead score works

A lead starts at 10 points for completing the form and picks up 5 more for leaving comments. The rest comes from rules attached to that specific funnel type, so a seller who can hand over possession scores differently from an investor declaring available capital. The total is capped at 100, and the tier follows: hot at 80 and above, warm from 50 to 79, cold below 50.

Rules are defined per funnel type at the platform level. There is no screen in your admin for editing point values, so treat the score as a consistent ranking rather than a dial to tune.

Where you see it

The Leads table has an AI Score column showing the score out of 100 with a colored tier badge. Click the column header to sort by it: that is the fastest way to build a call list. The same badge appears on the lead detail page. On the Dashboard, Lead Score Distribution shows your hot, warm, and cold split. On the Attribution page, Avg Score tells you which traffic sources send better leads.

The AI Prediction card

On a paid plan the lead detail page also carries an AI Prediction card with a Conversion Probability, a Confidence figure, the model version, and the date it was calculated. It reads signals the rule-based score cannot see: how many chatbot conversations, emails, and text messages the lead has, how complete their contact details are, and how old the lead is. Where vector search is configured it also compares the lead against the 20 nearest leads in your own history and reports model 2.0-neon, otherwise it falls back to a built-in heuristic and reports 1.0.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan. ML Lead Prediction goes deeper on the card itself.

Tips to get the most out of it

  • Sort by AI Score every morning and work down the list. That is the whole feature. A ranked list you actually call beats a perfect model you admire.
  • Call hot leads inside the hour and route cold ones to a nurture sequence. A cold lead is not a bad lead, it is a lead that needs a slower motion.
  • Watch Confidence, not just probability. Confidence climbs with real interactions. A high probability at low confidence is the model guessing politely.
  • Keep lead statuses honest. Predictions compare new leads against your converted history, so sloppy statuses teach the model the wrong lesson.
  • Override the score when your gut is loud. A cold-scored seller who says the word foreclosure on the phone outranks any number on the screen.

Common problems

Almost every lead has the same score. The funnel is collecting few scoreable answers, so leads land near the base score. Add a qualifying question to the form rather than looking for a scoring setting.

Leads I added by hand all show 0. Scoring runs on funnel form submissions. A lead created through Quick Add has no form answers to score.

The score did not change after I edited the lead. The lead score is calculated once, at submission. Editing a record by hand does not recalculate it.

There is no AI Prediction card on the lead. Either your plan does not include it, or no prediction exists for that lead yet. New submissions are scored on arrival and a nightly job backfills older leads a batch at a time, so give it a day.

The prediction has not moved since yesterday. By design. A lead is re-scored at most once every 24 hours.

A team member cannot see scores at all. Scores live on the leads pages, which require the Leads permission. Grant it under Account → Team.

Related

ML Lead Prediction · Dashboard Metrics · Marketing Attribution

ML Lead Prediction

Lead prediction estimates how likely a lead is to convert, alongside estimates for deal value and how long a close might take. It is the deeper counterpart to the foundational scoring article.

What it actually is, and why that matters

This is a heuristic model, not a trained machine learning model. It works from weighted rules over the features of a lead and your historical deals. It does not learn from your outcomes over time, and it was not trained on your data.

That is not a criticism, it is the correct way to read the output. A heuristic model is transparent and stable: the same lead produces the same number, and the number reflects rules a human chose. It also means the model cannot discover something about your market that nobody encoded into it. Treat it as a well-informed second opinion, never as a verdict.

What it estimates

  • Conversion probability for a lead.
  • Estimated deal value.
  • Predicted days to close.
  • Model confidence, which is the figure to check first: a confident low score is more actionable than an uncertain high one.
  • Lead source ROI and estimated cost per lead by source.

Tips to get the most out of it

  • Read confidence before you read the prediction. A low-confidence estimate on a lead with little data is close to a guess, and acting on it is worse than ignoring it.
  • Use it to sequence your day, not to write anyone off. Prediction sorts your call list. It does not know that the cold lead just had a roof fail.
  • Feed it real deal outcomes. Its value estimates lean on your closed deals, so a pipeline where nothing is marked Closed produces weaker estimates for everyone.
  • Do not confuse this with the AI Score column on the leads list. That column is the rule-based lead score, a different number with a different purpose. Comparing them will only confuse you.
  • Sanity-check it against your own gut for a week before you trust it to sort your pipeline. If it disagrees with you consistently, one of you is missing something worth finding.

This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Common problems

The prediction looks implausibly low or high on every lead. Check the displayed figure against the lead's actual score and treat a uniform value across all leads as a display issue rather than a real prediction. Report it rather than acting on it.

Estimates seem wrong for my market. Expected on a thin history. The value and timeline estimates lean on your own closed deals, so they sharpen as you close more.

Two leads that look identical get different numbers. The model reads more features than are visible on the list view, including form answers.

Related

Lead Prediction (AI Scoring) · Lead Scoring · Lead Qualification Engine

Analytics Integrations

InvestorFunnel already reports on your leads, sources, and campaigns. What it cannot tell you about is the visitors who never filled in a form. That is what this tab is for: it injects Google Analytics, PostHog, the Meta Pixel, and Microsoft Clarity into every page of your funnels so you can see traffic, behavior, and session recordings in the tool of your choice.

What it can and cannot do

These are page-level tracking snippets. They fire a page view on load and nothing else, so no conversion or form-submission events are sent to Google Analytics, PostHog, or Meta. If you need a conversion event for ad optimization, add it through Custom Tracking Code or a tag manager. You can also run only one of Google Analytics or PostHog at a time. Meta Pixel ID and Microsoft Clarity Project ID are independent and run alongside whichever provider you pick.

Setup

  1. Go to Settings → Tracking & Pixels.
  2. Set Provider to Google Analytics, PostHog, or None.
  3. For Google Analytics, paste your GA4 Measurement ID. It begins with G- and is found under Admin, then Data Streams.
  4. For PostHog, paste your Project API Key, which begins with phc_, and leave Host URL at the default unless you are self-hosting.
  5. Optionally add your Meta Pixel ID from Meta Events Manager, and your Microsoft Clarity Project ID from Clarity's Settings then Setup screen. Clarity is what gives you session recordings and heatmaps.
  6. Paste anything else into Custom Tracking Code. It goes into the head of every page, and script tags get the required security nonce automatically.
  7. Click Save. Nothing on this tab takes effect until you save.
  8. Open a funnel page and confirm the hit arrives in the destination tool.

Using it day to day

Once saved, the snippets go on every funnel page automatically. There is nothing to add per funnel and nothing to maintain. The reporting lives in the external tool: use Analytics and Attribution inside InvestorFunnel for lead and campaign performance, and GA4, PostHog, or Clarity for the traffic and behavior that happens before someone becomes a lead.

Tips to get the most out of it

  • Add Clarity even if you already run Google Analytics. They answer different questions. GA4 tells you how many people left, Clarity's recordings and rage-click data tell you where they gave up. It is free.
  • Install the Meta Pixel before your first Meta ad, not after. The pixel has to collect an audience before it can optimize against one, and it cannot backfill history.
  • Use Custom Tracking Code for a tag manager and let it own everything else. One container is easier to change than five fields.
  • Keep the tag count down. Every snippet is another script your funnel pages wait on, and page speed is a conversion lever of its own.
  • Compare the two sets of numbers deliberately. GA4 sessions against Total Submissions in Analytics is a truer conversion rate than either tool reports alone.

Common problems

The GA4 Measurement ID field shows an ID but Google Analytics receives nothing. The field can display a platform-level default that is not applied to your pages. Only a value you have saved on this tab is injected. Confirm the ID and click Save even if the box already looks correct.

I picked PostHog and nothing is tracking. Both a Project API Key and a Host URL are needed. If the key is blank the snippet is left off the page on purpose rather than shipping a broken script.

My PostHog key shows as asterisks. That is the masked stored value. Leave the field alone to keep the current key, or paste a new key to replace it.

Clarity records nothing. Check that Microsoft Clarity Project ID holds the bare project ID from Clarity's Setup screen, not the whole tracking script.

My custom script is blocked in the browser console. Pages run a content security policy. Script tags inside Custom Tracking Code get a nonce added automatically, but an inline event handler or a script from a blocked domain still fails.

Settings cannot be changed in demo mode. You are in a demo organization, where saving is disabled by design.

A team member cannot open Settings. The entire Settings area is owner-only. Team members are redirected to the dashboard with an access denied message regardless of their permissions.

Related

Marketing Attribution · Available Reports · Dashboard Metrics

Integrations

Webhook Integrations

A webhook posts a JSON payload to a URL you control the moment something happens in your account: a lead arrives, a deal closes. It is how you get events out of InvestorFunnel and into Slack, an automation platform like Zapier or Make.com, or your own software.

What it can and cannot do

Each webhook watches one event and posts to one URL, so three events means three webhooks. It is outbound only. Deliveries are queued and sent by a background worker, so they are near real time rather than instant. A failed delivery retries three times with a widening gap, then stops, and there is no manual replay.

Setup

  1. Go to Settings → Webhooks and click Add Webhook.
  2. Enter a Name you will still understand in six months, like "Slack: new seller leads".
  3. Choose an Integration. This is not just a label, it decides the shape of the JSON you receive.
  4. Paste the Webhook URL: a Slack Incoming Webhook URL, or the catch hook URL your automation gives you.
  5. Pick one Trigger Event.
  6. If your endpoint expects a token, put it in Auth Token. It is sent as an Authorization: Bearer header. Leave it blank for Slack and for catch hooks.
  7. Click Add Webhook.

The events you can trigger on

  • New Lead: any form submission, lead magnet download, or lead created through the API.
  • Lead Qualified: a lead's status changes to qualified.
  • Lead Contacted: a lead's status changes to contacted.
  • Deal Created: a deal is created on the Deals page.
  • Deal Closed: a deal's status becomes Closed.

The lead status events fire on the change itself, so moving a lead straight to converted fires neither.

What arrives at the other end

Slack gets a formatted message: event, funnel type, the lead's name and email, score out of 100, tier, and a View in Dashboard button. Nothing else to configure, no automation platform in the middle.

Zapier and Make.com get the same flat lead object: id, name, email, phone, funnel type, score, tier, status, submission time, and every submitted field. Pipedrive and HubSpot get payloads shaped for their own APIs. For anything else, Pabbly Connect or your own endpoint, pick Zapier: that is the generic shape.

Using it day to day

The pause button disables a webhook without deleting it, which is what you want while rebuilding an automation. Deleting also deletes that webhook's delivery history. Below the list, Recent Delivery Log shows the last 20 attempts: delivered or failed, which lead, and the HTTP status returned.

One form can also post to its own URL, separate from these: turn on Webhook in Form Builder → Integrations, paste a URL, click Save URL. Use that when a single funnel needs to feed a different system than the rest of your account.

Tips to get the most out of it

  • Start with Slack and New Lead. Two minutes, no third-party account, and an alert in a channel your phone already notifies you about beats a dashboard you have to remember to open.
  • Test against a request-inspection URL first. Submit one test lead, look at the exact JSON you get, then build against that rather than an assumption.
  • Think before sending New Lead to a busy team channel. If you run paid traffic, volume kills the signal. Qualified is usually the event worth interrupting people for.

Common problems

There is no Webhooks tab in Settings. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Nothing arrives at my endpoint. Look at the webhook's row in Settings → Webhooks. When a delivery fails, a red warning line appears under Last Triggered with the exact error from the last attempt. Hover it to read the whole thing. That message tells you whether the URL is wrong, the endpoint rejected the payload, or it timed out.

Last Triggered is empty and there is no error. The event never fired. Confirm the webhook is Active and that the trigger you chose is the one you are actually causing.

It worked and then stopped. Catch hook URLs expire when the automation behind them is turned off or rebuilt, which shows up here as a 4xx failure.

My Slack message arrives as raw JSON. The Integration is set to something other than Slack. Edit the webhook and change it.

Related

Form Builder & Field Types · Leads API · Lead Scoring · Deals Pipeline

AI Assistant

The AI Assistant is a chat panel inside your admin that reads your own records and acts on them. Ask which leads to call today, how the pipeline is tracking, or tell it to mark a lead contacted and log a note. It runs on your own AI provider key, so you pick the provider and pay them directly.

What it can and cannot do

It can look up and search leads, update a lead's status or score, add notes, read your deal pipeline and upcoming appointments, and pull lead and funnel analytics, all scoped to your organization. It cannot send email or SMS, build funnels, or send mail.

It is also not the AI Concierge, which is a visitor-facing widget on your public site and answer-only. This assistant is admin-side and can change your records, which is why it sits behind your login.

Setup

  1. Go to Settings → AI.
  2. Choose your Active Provider: Anthropic, Gemini, or OpenAI.
  3. Paste the key for that same provider into the matching field, Anthropic API Key, Gemini API Key, or OpenAI API Key. This is the step people miss. A key for a provider you did not select does nothing.
  4. Pick a model in the matching Model dropdown, or choose Custom... and type a model ID.
  5. Under AI Chat Display Mode, choose Top Navigation (an icon in the topbar opening a side panel) or Floating Button (a circle in the bottom-right corner).
  6. Click Save AI Settings.

Using it day to day

Open the panel from the topbar icon or the floating button. When empty it offers five suggested prompts, which are a fair map of what it is good at. New conversation starts clean, Conversation history reopens an earlier thread, and Pop out moves the panel to the middle of the screen.

A mic button appears if your browser supports speech input. In top navigation mode the topbar mic opens a Voice Commands menu with a Voice mode toggle and a wake-word toggle, so you can dictate by saying a phrase instead of clicking. Set it in Wake Word on the same tab.

Knowledge Base and memory

Two panels on Settings → AI stop the assistant being generic. Knowledge Base holds documents it can reference: paste text or upload a PDF up to 10 MB, add a Title, click Add Document. Your buy criteria, your call scripts, your process.

AI Memory holds short persistent facts, added with Save Memory or by telling the assistant to remember something in chat. They are prepended to every conversation, so keep them few and factual. The cap is 50 entries and the oldest is dropped past that.

Tips to get the most out of it

  • Ask for a decision, not a report. "Which five leads should I call first and why" beats "show me my leads". It has your scores and statuses, make it use them.
  • Have it state the change before you let it write unsupervised. Once you trust the pattern on lead updates and notes, stop checking.
  • Put your buy criteria in the Knowledge Base, not in every prompt. Then "does this lead fit" becomes a real question.
  • Keep memories to durable facts. "We only buy in Franklin County" is a memory. "Call Dave back" is a task.
  • Start on a cheap, fast model. Most of this is lookups and summaries. Move up only when answers are too shallow.

Common problems

"AI service not configured". The key for your Active Provider is missing. A key saved for a different provider does not count. Add it under Settings → AI.

It answers but the numbers are wrong. Ask it to look something up rather than to assess. "How many leads came in the last 7 days" hits your data, "how are we doing" invites a guess.

The voice output button does nothing. Spoken replies need a voice provider key: ElevenLabs or Hume under Settings → Phone, or an OpenAI key under Settings → AI. Without one you can still dictate, you just will not hear replies.

There is no mic button at all. Your browser does not support speech input. Try current Chrome or Edge.

Related

AI Concierge · Deal Analyzer · Content Engine

eSign & Contracts (DocuSeal)

eSign sends a contract out for signature from the deal or lead you are already looking at, and brings the status back. It runs on your own DocuSeal account: you paste an API key, DocuSeal emails the recipient and hosts the signing page, and this app records what happened against the record.

What it can and cannot do

Each document goes to one signer. There is no multi-party routing, no counter-signature step, and no field-placement editor in the app: templates are HTML and DocuSeal handles the signing experience. Void cancels the signing link while a document is still draft, sent, or viewed. You cannot un-sign a completed one. If you connect DocuSign instead, its templates appear in the same picker tagged [DocuSign].

Setup

  1. Create an account at docuseal.com. It has a free tier and bills you directly, not through us.
  2. In DocuSeal, open Settings → API & Webhooks and copy your API key.
  3. In this app, go to Settings → Integrations, find eSign & Contracts (DocuSeal), paste the key into API Key and save. The panel should then read "Configured. eSign panels are active on deal and lead pages."
  4. Copy the read-only Webhook URL shown just below it.
  5. Back in DocuSeal, add that URL as a webhook and subscribe to the submission.* and form.* events. Skip this and documents still send, but their status never updates here.
  6. Optionally paste DocuSeal's signing secret into Webhook Secret so incoming events are verified.

Sending a document

  1. Open a deal or a lead and scroll to the eSign & Contracts panel.
  2. Click Send for Signature.
  3. Pick a Template. Five system templates ship with the app: Purchase Agreement, Assignment Contract, JV Agreement, Option Agreement, and Earnest Money Agreement.
  4. Check the Recipient fields. Name, email, and phone are pre-filled from the record, and the email is where the signing link goes.
  5. Click Send.

The first time you use a template, a copy of it is created in your DocuSeal account and reused after that. The panel keeps a timeline per record, newest first, badged draft, sent, viewed, signed, completed, declined, expired, voided, or failed. Statuses arrive from DocuSeal's webhook, so they change on their own rather than when you reload.

Tips to get the most out of it

  • Send the first one to yourself. Put your own email in the recipient field and sign it. You see exactly what your seller sees, once, before it matters.
  • Read the system templates before you use them. They are working starting points, not legal advice, and the terms inside (earnest money, closing window, as-is) are defaults someone else chose. Have your attorney review anything you send repeatedly.
  • Do not assume the deal numbers fill themselves in. The send form collects the recipient, not figures from the deal, so check what actually goes out before a live contract.
  • Void instead of resending. Two live signing links for one agreement is how you get two signed versions that disagree.
  • Work the "viewed but not signed" list. Someone opened the contract and stopped. A call at that moment converts.

Common problems

I do not see an eSign panel at all. This is a paid-plan feature and is not available on a trial: if you do not see it, check Account → Plan. If your plan includes it, the panel still stays hidden until an API key is saved.

"DocuSeal API key not configured." The key was never saved. Add it under Settings → Integrations.

"Failed to send document for signature." DocuSeal rejected the request, almost always an invalid or revoked API key. Regenerate it and paste the new one.

It sent, but the status never moves off sent. The webhook is missing on the DocuSeal side. Re-add the Webhook URL and confirm you subscribed to submission.* and form.*.

A team member cannot see the panel. It lives on deal and lead pages, so it needs the Deals or Leads permission. Grant it under Account → Team.

Related

Deals Pipeline · Lead Lifecycle · Team Members & Access Control

Developer API

Leads API

Send Your Own Leads Into InvestorFunnel

If you generate leads outside InvestorFunnel — your own ads, a scraper, another tool — you can push them straight into your pipeline over the API instead of importing a CSV by hand. This is a Gold and Enterprise plan feature.

1. Generate a Key

Go to API Keys in your admin sidebar and click Generate API Key. Name it something you will recognize later (e.g. “Facebook Lead Ads”), and set permissions to Read + Write if you plan to create leads, not just read them. The key is shown once, copy it immediately.

2. Authenticate

Every request carries your key as a bearer token, and request bodies are JSON (a form-encoded body also works):

Authorization: Bearer if_live_<your_key>

Keys are scoped to your account only. Requests are capped at 60 per minute per key by default; each response includes an X-RateLimit-Remaining header so you can watch your headroom.

3. Create a Lead

POST https://investorfunnel.com/api/v1/leads (requires a Read + Write key)

Only email is required. Everything else is optional:

  • email — required, must be a valid address
  • firstname, lastname — up to 100 characters each
  • phone — up to 20 characters, any format
  • funnel_typeseller, buyer, investor, lender, provider, apprentice, or contact (defaults to contact)
  • source — a free-text label, e.g. “Facebook Ads” (defaults to “api”)
  • notes — up to 2,000 characters, saved as the lead’s first note
  • fields — an object of funnel-specific data (see below)
  • external_id, ip_address, user_agent, landing_page_url, referrer_url, trustedform_cert_url, jornaya_leadid, tcpa_text, consent_at, utm_source, utm_medium, utm_campaign — consent evidence and attribution (see section 5)

Text values are trimmed and whitespace-normalized on the way in: non-breaking spaces (the \u00a0 browser autocomplete often leaves in addresses) become regular spaces, and runs of whitespace collapse to one. Otherwise what you read back is exactly what you sent: an apostrophe or ampersand in a name comes back as typed.

Testing without creating a real lead: add "dry_run": true to the request body. It runs every check — email format, duplicate email, your account’s lead limit, and every fields key — and tells you what would happen, without writing anything or counting against your plan. Useful for a first integration before you trust it with real data.

Example, a motivated seller lead:

curl -X POST https://investorfunnel.com/api/v1/leads \
  -H "Authorization: Bearer if_live_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","firstname":"John","lastname":"Smith","phone":"5551234567","funnel_type":"seller","source":"My Lead Gen Source"}'

A successful call returns 201 with the new lead, including its id. Sending the same email twice returns 409 instead of creating a duplicate, so it is safe to retry a request that timed out.

4. Sending Funnel-Specific Fields

Every funnel type asks for more than name/email/phone — a seller funnel also wants the property address, condition, bed/bath count, asking price, and so on. Send that data in the fields object so it lands in the lead’s record exactly like a visitor filled it out by hand, instead of getting flattened into one notes paragraph.

fields keys must match your account’s actual field set for that funnel_type (your own custom fields, if you have configured any, otherwise the platform defaults). An unknown key is rejected with a 422 that lists the valid keys for that funnel type, rather than being silently dropped — a typo shows up immediately instead of vanishing.

Example, the same seller lead with property details attached:

curl -X POST https://investorfunnel.com/api/v1/leads \
  -H "Authorization: Bearer if_live_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "firstname": "John",
    "lastname": "Smith",
    "phone": "5551234567",
    "funnel_type": "seller",
    "source": "My Lead Gen Source",
    "fields": {
      "address": "123 Main St, Columbus, OH",
      "propertytype": "Single Family Home",
      "condition": "Needs Rehab",
      "bed": "3 Beds",
      "bath": "2 Baths",
      "price": "150000",
      "why": "Relocating for work"
    }
  }'

Leads created with fields are scored the same way an organic submission is (your account’s lead scoring rules, if any, evaluate the same field names), instead of defaulting to a score of 0.

Not sure which keys your account’s seller (or buyer, investor, lender, provider, apprentice) form actually uses? Send a request with an obviously-wrong key like "fields": {"_": "_"} — the 422 error lists every valid key for that funnel type.

5. Consent Evidence and Attribution

If you buy or generate leads under TCPA rules, send the proof along with the lead so it lives on the lead record instead of in a spreadsheet somewhere else. Every one of these is optional and accepted on both create and update:

  • ip_address and user_agent — the consumer’s own IP and browser when they submitted, not your server’s. Without ip_address we record the IP the request came from, which is usually your integration, so send it.
  • landing_page_url and referrer_url — the page they converted on and the page that sent them there (http or https).
  • trustedform_cert_urlhttps://cert.trustedform.com/<token>. We store it as sent; claiming the certificate stays in your own ActiveProspect account (unclaimed certs expire after 72 hours).
  • jornaya_leadid — the Jornaya LeadiD token, UUID format.
  • tcpa_text — the exact consent wording the consumer saw, up to 5,000 characters. Shown on the lead’s Consent & Compliance card.
  • consent_at — when they consented, ISO 8601 such as 2026-09-04T14:03:00Z. Defaults to the moment we receive the lead, which is usually later than the real consent, so send the real one.
  • utm_source, utm_medium, utm_campaign — recorded in attribution reporting alongside your organic funnel traffic.
  • external_id — your own id for the lead. Unique per account: reusing one returns 409 (code: "duplicate_external_id"), and GET .../leads?external_id=... finds the lead by it, so you can update a lead you already sent without storing our id.

Everything you send comes back on GET under the same names, plus consent_source (api_import for API leads).

6. Look Up Leads

GET https://investorfunnel.com/api/v1/leads lists your leads, newest first, filterable by status, funnel_type, and search, with sort, page, and per_page for pagination, or by external_id. GET .../leads?id=123 (or .../leads/123) fetches one lead by ID, including its fields.

7. Update a Lead

PATCH https://investorfunnel.com/api/v1/leads?id=123 or .../leads/123 (requires a Read + Write key) updates only the fields you send: firstname, lastname, phone, source, status, funnel_type, lead_score (0–100), fields (same validation as create — merged into the lead’s existing data, so a partial update cannot wipe out fields set earlier), or any of the consent evidence params from section 5 (an empty string clears one). Moving status to qualified or contacted fires the same automation as changing it by hand in the dashboard.

Errors

Every error returns JSON with an error message. 400 means the request body is not valid JSON (code: "invalid_json"); check for a trailing comma or an unescaped quote. 401 means your key is missing, malformed, or revoked. 403 means your key lacks the required permission, your account is not active, your plan does not include API access, or you have hit your account’s lead limit (code: "limit_reached" in the response). 422 means validation failed — a missing/malformed email, an invalid value against one of your field’s validation rules, or an unrecognized fields key. 409 means that email (or external_id) already exists as a lead in your account. 429 means you hit the rate limit — check the Retry-After header and back off before retrying.

Get Notified When a Lead Comes In

If you have webhooks configured for “new lead,” they fire for API-created leads too, same as any lead captured through a funnel. No extra setup needed on the API side.

Managing Keys

Revoke a key anytime from API Keys in your dashboard — anything using it stops working immediately. You can have up to 10 active keys per account.

Overview & Getting Started

The InvestorFunnel REST API gives you programmatic read and write access to your own organization's leads, deals, properties, and notes. Use it to push leads in from a source we have no native integration for, mirror your pipeline into a reporting tool, or drive an internal tool from live data. Every request is scoped to the organization that owns the key, so a key can never reach another account's records.

What the API covers

Four resources, all served from https://investorfunnel.com/api/v1/:

  • /api/v1/leads supports GET, POST and PATCH.
  • /api/v1/deals supports GET only.
  • /api/v1/properties supports GET only.
  • /api/v1/notes supports GET and POST.

That is the entire surface. There are no delete operations in v1, and no endpoints for campaigns, appointments, forms, SMS, or billing. Paths take no .php suffix. The API is for pulling and writing on your own schedule: to have InvestorFunnel push events out as they happen, use webhooks instead.

Getting a key

  1. Open Account → API Keys in the admin sidebar.
  2. Click Generate API Key.
  3. Enter a Key Name, up to 100 characters. Name it after the integration that will hold it, because this label is all you have to go on when you later decide what to revoke.
  4. Choose Permissions: Read: view data only, Read + Write: view and create/update, or Full Access: all operations including delete.
  5. Click Generate Key.
  6. Copy the key from the banner that appears. It is shown once and never again, because only a hash of it is stored.

Your first request

curl -H "Authorization: Bearer if_live_YOUR_KEY_HERE" \
  "https://investorfunnel.com/api/v1/leads?per_page=5"

Success is HTTP 200 and a body shaped like {"data":[ ... ],"meta":{ ... }}. Anything else is covered in Response Format & Error Codes.

Managing keys day to day

The API Keys table lists every key with its Permissions level, Last Used date, Created date and Status. Only the start and last four characters of the key are shown, enough to match it against your own records without exposing it. To retire a key, click Revoke and confirm with Revoke Key: it stops working immediately and cannot be restored.

Last Used is the column that earns its keep. Still reading Never a day after you shipped means your requests are failing before they reach us. A date that stopped moving means an integration broke quietly.

Tips to get the most out of it

  • One key per integration, never a shared key. You get 10 active keys. The point is that revoking a leaked or retired key takes down one system, not all of them.
  • Default to Read. Anything that only reports or exports has no business holding a key that can write. Generate a separate write key for the one job that creates records.
  • Full Access buys you nothing today. v1 implements no delete operations, so it behaves exactly like Read + Write. Pick Read + Write and keep the smaller blast radius.
  • Keep the key in an environment variable or secret manager. Never in a committed script or browser-side JavaScript: the API allows any origin, so a key in front-end code is a key you have published.
  • Rotate by overlap, not by outage. Deploy the replacement, confirm its Last Used is updating, then revoke the old one.

What goes wrong

I do not see API Keys in the sidebar. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

A team member cannot open the API Keys page. Key management is restricted to the account owner. A team member who navigates there is sent back to the dashboard with "You do not have permission to access that page." No permission under Account → Team unlocks it, so generate the key yourself and hand it over.

Maximum of 10 active keys reached. Revoke one you no longer need and the Generate API Key button comes back. Revoked keys stay in the table as a record and do not count toward the 10.

I closed the page before copying the key. It is gone. Only a hash is stored, so nobody can retrieve it, support included. Revoke it and generate a replacement.

My request returns an HTML page instead of JSON. The path is wrong. Only the four endpoints above exist and they take no .php suffix. An unrecognized path under /api/v1/ redirects to the marketing homepage rather than returning a JSON 404, so a typo looks like HTML.

Related

Authentication · Leads API · Response Format & Error Codes · Webhooks (Zapier, Make, Pabbly)

Authentication

Every v1 API request authenticates with an organization API key sent as a Bearer token. There are no sessions, no OAuth flow and no cookie auth: the key is the only credential, and it decides both who you are and which organization's data you reach.

The header

Authorization: Bearer if_live_a1b2c3d4e5f6...

Keys are the prefix if_live_ followed by 48 lowercase hex characters. Format is validated before any lookup, so a mangled key fails with Invalid API key format. rather than Invalid API key. That distinction is a useful first diagnostic. Only a hash is stored, which is why the key can never be shown to you again.

Send it on the standard Authorization request header. There is no query-string parameter and no request-body fallback.

Permission levels

Each key carries one level, chosen when you generate it under Account → API Keys. The level cannot be edited afterwards: to change it, revoke the key and generate a new one.

  • Read: view data only grants every GET endpoint.
  • Read + Write: view and create/update adds POST and PATCH.
  • Full Access: all operations including delete implies both. v1 has no delete operations, so today it behaves identically to Read + Write.

Only write methods check permissions. A key without write permission attempting POST or PATCH gets HTTP 403 and API key does not have 'write' permission.

Rate limits

Limits are per key, not per organization: 60 requests per 60-second window by default. Every authenticated response reports the current state.

  • X-RateLimit-Limit the ceiling for the window.
  • X-RateLimit-Remaining requests you have left.
  • X-RateLimit-Reset Unix timestamp when the window resets.

Going over returns HTTP 429, a Retry-After header in seconds, and {"error":"Rate limit exceeded. Try again in N seconds.","code":"rate_limit_exceeded"}.

Tips to get the most out of it

  • Read the headers instead of guessing. Slow down when X-RateLimit-Remaining gets low rather than waiting to be told no.
  • Put a heavy job on its own key. Because the limit is per key, a nightly bulk sync on a dedicated key cannot starve a real-time integration on the same account.
  • Page with per_page=100, not per_page=10. The limit counts requests, not rows, so fewer and larger pages move far more data on the same budget.
  • Treat 401 and 403 as fatal, 429 as temporary. Retrying an auth failure burns rate budget for nothing: the key is not going to start working on its own.

What goes wrong

Missing or invalid Authorization header. Expected: Bearer <token> (401) No header arrived, or it was not in Bearer <token> form. Watch for HTTP clients that drop Authorization when following a redirect.

Invalid API key format. (401) The token did not match if_live_ plus 48 hex characters. Almost always a truncated paste or a trailing newline picked up from reading the key out of a file.

Invalid API key. (401) Correctly formatted but not found. You are using a key from a different account, or one that was never saved.

API key has been revoked. (401) Someone clicked Revoke. Revocation is permanent, so generate a new key and redeploy.

Account is not active. (403) The organization is suspended or cancelled; nothing is wrong with the key. Resolve it under Account → Plan and the same key resumes working.

Every request returns 403, even with a brand new key. The account's plan does not include API access. This is a paid-plan feature and is not available on a trial. Check Account → Plan.

Related

Overview & Getting Started · Response Format & Error Codes · Leads API

Deals & Properties API

/api/v1/deals and /api/v1/properties are read-only. Each is a paginated list with a single-record variant, meant for mirroring your pipeline and your inventory into a report, a dashboard, or your own site. Anything that creates or changes a deal or a listing has to happen in the admin.

Deals

  • GET /api/v1/deals lists deals, newest first.
  • GET /api/v1/deals?id=123 returns one deal.

Filters are status (one of draft, offered, accepted, closed, dead), plus page and per_page (default 50, maximum 100).

curl -H "Authorization: Bearer $IF_KEY" \
  "https://investorfunnel.com/api/v1/deals?status=accepted&per_page=100"

Rows carry id, lead_id, property_address, property_type, status, estimated_value, offer_price, assignment_fee, closing_date and created_at, and join in the linked lead's firstname, lastname and email so you do not need a second call for the contact. The single-deal response adds the lead's phone plus repair_estimate, arv and updated_at.

Properties

  • GET /api/v1/properties lists properties, featured first then newest.
  • GET /api/v1/properties?id=123 returns one property.

Filters are type (matched against the property type), deal_type, visibility (one of public, private, draft), plus page and per_page.

Rows return id, slug, address, city, state, zip, property_type, deal_type, target, visibility, bedrooms, bathrooms, sqft, asking_price, arv, assignment_fee, is_featured and created_at. The single-property response adds year_built, repair_estimate, description and updated_at. Gallery images are not exposed, and neither resource has a text search parameter.

Tips to get the most out of it

  • Filter server side rather than in your code. Passing status=accepted keeps you inside the rate limit far better than pulling every page and filtering locally.
  • Set visibility=public whenever you are feeding a public page. The unfiltered list includes drafts and private listings, and nothing stops you from publishing one by accident.
  • Join on lead_id to get back to the person. Then call /api/v1/leads?id= for what the deal payload leaves out, like lead_score and lead status.
  • Reconcile row count against meta.total before overwriting anything downstream. If they disagree you dropped a page, so retry rather than deleting records on your side.
  • Sync from the list endpoint, not one record at a time. Pulling a whole pipeline with single-record calls is the fastest way to hit 429.

What goes wrong

Method not allowed. (405) You sent POST, PATCH, PUT or DELETE. Both resources are read-only in v1, so create and edit deals and properties in the admin.

Deal not found, or Property not found. (404) Wrong id, or the record belongs to a different organization.

Invalid status value, or Invalid visibility value. (400) The filter value is not one of the allowed strings above. Note that list filters reject bad values with 400, whereas the write endpoints use 422.

My type or deal_type filter returns an empty list instead of an error. Those two are matched literally against stored values and are not validated, so an unrecognized value is a legal query with no results. Zero rows there almost always means a typo, or a different spelling than the admin uses.

The list is empty but I know I have records. Clear your filters, then check the key. Every response is scoped to the organization that owns the key, so a key from another account returns an honest empty list rather than an error.

Related

Deals Pipeline · Adding & Editing Properties · Leads API · Notes API

Notes API

/api/v1/notes reads and writes the activity notes attached to a lead, a deal, or a property. It is the only place in v1 where you can write anything against deals and properties, since those resources are themselves read-only. The natural use is mirroring outside call and email activity onto the record so the platform history is complete.

Endpoints

  • GET /api/v1/notes?entity_type=lead&entity_id=123 lists that record's notes, newest first.
  • POST /api/v1/notes creates a note. Requires write permission.

Both parameters are required on GET. There is no way to list all of your notes at once, and no filter by date or note type: notes are always fetched one parent record at a time. There is no update and no delete, so every note you write is permanent.

Reading notes

entity_type must be lead, deal or property, singular. page and per_page work as elsewhere, except per_page caps at 50 here rather than 100. Rows return id, entity_type, entity_id, note_type, body and created_at. The parent record is checked first, so a bad or foreign entity_id returns 404 instead of an empty list.

Writing notes

curl -X POST -H "Authorization: Bearer $IF_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entity_type":"lead","entity_id":123,"note_type":"call","body":"Left voicemail, callback Tuesday."}' \
  "https://investorfunnel.com/api/v1/notes"

entity_type, entity_id and body are required, and body is truncated at 2,000 characters. note_type is optional and accepts general (the default), call, email or showing; anything else silently becomes general. Success is HTTP 201 with the created note. Notes written this way are stored without an author, because an API key is not a user.

Tips to get the most out of it

  • Set note_type rather than leaving everything general. It costs nothing at write time and it is the difference between a readable history and a wall of undifferentiated text.
  • Write one note per event, not a running log. Notes are immutable, so an append-only stream of short notes with real timestamps beats one long note you can never correct.
  • Put the outcome in the first few words of body. Lists come back newest first and long notes get skimmed. "No answer, retry Thursday" earns its place; three sentences of preamble do not.
  • Fetch notes only for records you are about to act on. Reads are one request per record, so sweeping a whole pipeline for notes burns your rate limit for data nobody reads.
  • Prefix machine-written notes with the system name. Since the API cannot attach an author, that prefix is the only clue your team gets that a human did not type it.

What goes wrong

entity_type is required: lead, deal, or property. Missing or misspelled. Note the singular form: lead, not leads. This is a 400 on GET and a 422 with code validation_error on POST.

entity_id is required. Missing, zero, or non-numeric. On GET it belongs in the query string, on POST in the JSON body, and mixing those up is the most common cause.

body is required. (422) An empty or whitespace-only body.

Lead not found, Deal not found, or Property not found. (404) The parent record does not exist under your organization. Confirm the id against /api/v1/leads, /api/v1/deals or /api/v1/properties first.

Method not allowed. (405) Only GET and POST exist on this endpoint.

Related

Notes & Activity Log · Leads API · Deals & Properties API · Authentication

Response Format & Error Codes

Every v1 endpoint answers with JSON and a meaningful HTTP status. Two success shapes, one error shape and a short list of status codes cover the whole API, so you can write error handling once and reuse it across all four endpoints.

Response shapes

All responses carry Content-Type: application/json. A single record is wrapped in data:

{"data": {"id": 123, "email": "seller@example.com", "status": "new"}}

A list adds a meta block:

{
  "data": [ ... ],
  "meta": {"total": 412, "page": 1, "per_page": 50, "total_pages": 9}
}

Errors replace data with error, and some add a machine-readable code:

{"error": "A lead with this email already exists.", "code": "duplicate"}

Branch on the HTTP status first. code is present on only a handful of errors, so a client that keys off code alone will miss most failures.

Status codes

  • 200 success.
  • 201 created, returned by POST with the new record in data.
  • 204 no content, returned to a CORS preflight OPTIONS request.
  • 400 a malformed request, or an invalid value on a list filter.
  • 401 authentication failed: no header, wrong key format, unknown key, or revoked key.
  • 403 authenticated but not allowed: missing write permission, an inactive account, a plan without API access, or an account limit reached.
  • 404 the record does not exist, or belongs to another organization.
  • 405 that method is not implemented on that endpoint.
  • 409 a conflict with an existing record, currently only a duplicate lead email.
  • 422 the request was well formed but a field on a write failed validation.
  • 429 the per-key rate limit was exceeded.
  • 500 the write failed on our side.
  • 503 the database was unreachable.

The split between 400 and 422 is worth internalizing: list filters reject bad values with 400, while POST and PATCH bodies reject them with 422 plus a validation_error code.

Error codes

Four code values exist. Every other error returns error only.

  • validation_error (422) a field on a write is missing, out of range, or not an allowed value.
  • duplicate (409) a lead with that email already exists in your organization.
  • limit_reached (403) the account is at its lead cap.
  • rate_limit_exceeded (429) too many requests on this key. Wait the seconds given in Retry-After.

Tips to get the most out of it

  • Retry 429, 500 and 503. Never retry any other 4xx. A 401, 403, 404 or 422 will fail identically forever, and the retries burn your rate limit for nothing.
  • Log the error string, not just the status. The messages name the offending field. A log line that says only "422" tells you nothing at 2am.
  • Trust meta.total_pages but verify against meta.total. Count the rows you actually collected and compare before overwriting anything downstream. A mismatch means a page was dropped, not that records vanished.
  • Do not assume a field exists because you saw it once. List and single-record responses return different column sets, and empty columns come back as null rather than being left out.
  • Never call the API from browser JavaScript. Any origin is allowed, which is convenient server side and a disaster in a page: your key would be readable by anyone who views source.

What goes wrong

I get HTML back instead of JSON. The request never reached an API endpoint. An unrecognized path under /api/v1/ redirects to the marketing homepage rather than returning a JSON 404, so a mistyped endpoint or a stray .php suffix looks like an HTML page with a 302.

Rate limit exceeded. Try again in N seconds. (429) You went over 60 requests in a 60-second window on that key. Sleep for the Retry-After value and continue; watching X-RateLimit-Remaining keeps you from getting here at all.

Service temporarily unavailable. (503) A database error on our side, not a problem with your request. Retry with exponential backoff and alert if it persists.

Failed to create lead, or Failed to create note. (500) The record passed validation but the insert failed. Do not retry in a tight loop: read the record back first, because a partial write can leave the row in place.

My browser preflight fails. The API answers OPTIONS with 204 and allows any origin, but only the Authorization and Content-Type request headers and the GET, POST, PATCH and OPTIONS methods. A custom header will be refused.

Related

Authentication · Overview & Getting Started · Leads API

Account, Security & Support

Plan & Usage

The Plan page shows which plan you are on, how much of it you are using, and is where you upgrade or cancel. It is also the page to check first whenever a feature seems to be missing.

⚠️ Owner only

Only the account owner can open this page. Team members are blocked and sent back to the dashboard with "Access denied." This is deliberate: billing is not delegated. If a team member needs a plan change, they have to ask the owner.

Reading Resource Usage

Every plan has limits on things like leads, funnels, and users. Resource Usage shows where you stand against them. Check it before a big import or before inviting several team members, rather than discovering a ceiling mid-task.

Upgrading

  1. Go to Account → Plan.
  2. Review the tiers and click Upgrade Now on the one you want.
  3. Complete checkout. Your new features are available immediately.

If you are on a Founding Rate, the page will say so. That rate is locked in for as long as the plan stays active, which is worth knowing before you cancel: cancelling gives up the rate, not just the plan.

Cancelling

Cancellation is scheduled rather than instant. Once requested, the page shows Cancellation scheduled and you keep access until the period ends. Changed your mind inside that window? Click Keep My Plan and nothing is lost. Read the Cancellation Policy on the page for the specifics.

Tips to get the most out of it

  • Check this page first when a feature is missing. Most "where did X go" questions are plan gating, not a bug.
  • Export your data before cancelling, from Account → Export. Do it while you still have access.
  • If you hold a Founding Rate, think hard before cancelling. It does not come back.
  • Watch Resource Usage as you grow rather than waiting to hit a wall during a busy week.

Common problems

"Access denied" when I open the page. You are signed in as a team member, not the owner. Expected behavior.

I upgraded but a feature is still hidden. Sign out and back in to refresh your session, then re-check. If it persists, contact support.

I canceled by mistake. If you are still inside the notice window, Keep My Plan reverses it.

Related

Export Your Data · Team Members & Access Control · Account Setup

Your Profile

Your Profile holds your own name, contact details, avatar, and company information, plus your password. It is separate from Settings, which configures the account; Profile is about you.

⚠️ Owner only

Team members cannot open this page. They are redirected with "Your profile is managed by your account owner." If you are a team member and need your name, email, or password changed, the account owner does it for you under Account → Team.

What is on the page

Three tabs plus a password card:

  • Basic Info: your name, email, phone, and avatar.
  • Address & Social: your address and social links.
  • Company/Business: company name, email, phone, website, logo, and branch location.
  • Change Password, always visible below the tabs.

Changing your password

  1. Enter your Current Password.
  2. Enter and confirm the new one.
  3. Save.

If you cannot remember your current password, do not fight this form. Sign out and use the "Forgot password?" link on the login page instead.

Tips to get the most out of it

  • Fill in the company fields properly. They feed what recipients see on outbound communication, so blanks show up in front of clients.
  • Keep your email current. It is where password resets and alerts go. A stale email here is how people lock themselves out.
  • Add an avatar. Small thing, but it makes a shared account far easier to read at a glance.
  • Turn on two-factor authentication while you are here, under Account → Security. Profile is the account a password reset targets.

Common problems

"Your profile is managed by your account owner." You are a team member. Ask the owner to make the change in Account → Team.

My password change is rejected. The Current Password is wrong. Use the forgot-password flow from the login page instead.

My company logo does not appear. The logo field expects a direct URL to an image file, not a link to a page containing one.

Related

Two-Factor Authentication · Password & Account Recovery · Team Members & Access Control

Team Members & Access Control

A team member is a person record that doubles as a login. You create the person, choose which pages they can open, and optionally set a password so they can sign in. The same record drives lead notification routing, deal and commission tracking, and booking availability, so one row covers both who works for you and what they can touch.

What a team member cannot do

Team members can never delete records: the delete controls do not render for them on any page. They also cannot open Team, Settings, Plan, Export Data, Audit Log, API Keys, Profile, or Security. All of that is deliberate.

Two areas sit outside the permission checkboxes: Phone and Direct Mail are gated by your plan rather than by permissions, so any team member who can log in sees them when your plan includes them. Factor that in before you turn on login access.

Adding a team member

  1. Go to Account → Team and click Add Team Member.
  2. On the Profile tab, fill in First Name, Last Name, and Email. Those three are required; Notification Email (override), Phone, Title, Timezone, and Bio are optional.
  3. On Role & CRM, set Role, Specialization, and Commission Rate (%), then pick their Assigned Funnels. Leave every funnel unchecked and they get new lead notifications for all of them.
  4. On Access, tick Enable Login Access and choose their Permissions. The Templates buttons (Partner, Acquisitions, Dispositions, Sales Agent, Assistant, Transaction Coordinator) fill the checkboxes as a starting point.
  5. Click Add Member.
  6. Reopen the member with the pencil icon. A Set Password block appears under the form: enter a New Password of at least 8 characters and click Set Password.
  7. They sign in at your normal admin login with their email address and that password. The field reads Username or Email, but a team member only ever matches on email.

What each permission unlocks

Leads opens the lead list, individual lead records, and New Lead. Deals opens the pipeline. Tasks opens Tasks. Properties opens Properties. Analytics opens Analytics, plus Attribution where your plan includes it. Appointments opens All Appointments, Calendar, appointment Types, and appointment Settings.

Funnels opens Funnels, Forms, the form and funnel builders, Lead Magnets, and Automations. It is the widest grant on the list, because it puts your live public pages in reach.

Content opens Blog, Pages, Categories, Media, FAQs, Reviews, Blog CTAs, Concierge Chats, and the Content Engine tabs your plan includes.

Anything unchecked is hidden from their sidebar, and a direct link bounces them to the dashboard with You do not have permission to access that page.

Running the team page day to day

The table reads across as a working summary: Funnels shows notification routing (or All), Deals / Leads shows closed deals, total deals, and assigned leads, Login reads Enabled or Off, Status reads Active or Inactive. Each row carries pencil to edit, clock for weekly availability, tags for the appointment types they handle, and the eye for View As.

View As drops you into that member's exact permission set with an Exit link in the banner. When someone leaves, use the toggle to deactivate rather than erase: that stops their notifications, removes them from assignment lists, and ends their session, while keeping their name on the deals they worked.

Tips to get the most out of it

  • Start from a Template, then take things away. The templates are deliberately generous, and removing a checkbox is easier than reasoning about eight of them cold.
  • Give a new assistant Content before Funnels. A bad blog edit is reversible in a minute. A bad funnel edit is live on the page collecting the wrong leads.
  • Set Assigned Funnels for everyone except the one person who wants every alert. Unchecked means all funnels, and that is how a good rep learns to ignore notifications.
  • Use Notification Email (override) for shared inboxes. The login address and the alert destination do not have to match.
  • Treat the password you set as shared credentials. The member cannot change it themselves, so make it long and change it in the same place when they move on.
  • View As before you announce that access is ready. Thirty seconds there beats a day of a new hire clicking dead links.

Common problems

My team member says their username and password do not work. Team members sign in with their email address, not a username. Then check three things on their record: Enable Login Access is ticked, Status is Active, and a password has been set. A new member has none until you set one.

I changed a permission but they still cannot see the page. Permissions refresh on a background check roughly every five minutes. Have them sign out and back in for an instant update.

They clicked Forgot password? and no email arrived. Self-service reset only covers account owners. Nothing is sent for a team member, and the page still shows a success message. Set their password yourself under Account → Team.

You've reached your plan's team member limit. The cap counts active members only. Deactivate someone who no longer needs access, or change plan.

A team member gets "Your profile is managed by your account owner." Expected. Edit their name, email, timezone, and bio on the Profile tab of their team record.

Team members cannot be added in demo mode. The demo account is shared, so adding members is switched off.

Related

Your Profile · Password & Account Recovery · Team Member Routing · Plan & Usage

Two-Factor Authentication

Two-factor authentication adds a second step to your login: your password, then a six-digit code from an authenticator app. It is available on every plan at no extra cost, and it is the highest-value security setting in the account, because your login is what protects every lead record behind it.

What it covers and what it does not

It protects the account owner login only. Team member logins cannot use it today, so a strong unique password for each team member still matters. There is no SMS or email code option and no hardware key support.

There is also no QR code. Setup shows an Account Key that you type, paste, or hand to your app through a link. If you were expecting a QR image, nothing is broken.

Turning it on

  1. Go to Account → Security. The badge reads Not Enabled.
  2. Click Set Up Two-Factor Authentication. The badge changes to Setup in Progress and an Account Key appears.
  3. In your authenticator app, tap + or Add Account, then choose the option to enter a setup key.
  4. Use Copy Key and paste the key in, or on a phone tap Open App (mobile) to hand it over automatically.
  5. Type the six digits from the app into Verify: Enter 6-Digit Code and click Activate 2FA. Start Over discards the key and issues a fresh one.
  6. Your backup codes appear once. Use Copy All Codes and store them somewhere safe before you leave the page.

Living with it

Every login now goes password first, then Authentication Code. The field submits itself as soon as you enter the sixth digit. Codes rotate every 30 seconds and the code either side of the current one is accepted, so a slightly slow paste still works.

If your phone is not to hand, click Use a backup code instead and enter one in XXXXX-XXXXX form. You get eight, each usable once and consumed the moment it works. At two or fewer remaining, both the login and the Security page start warning you.

Once enabled, Account → Security shows Active, your method, and how many Backup Codes are left, with Regenerate Backup Codes and Disable 2FA underneath. Regenerating replaces the whole set, so any code you wrote down before stops working.

Tips to get the most out of it

  • Store the backup codes somewhere that is not the phone running the authenticator. Both on one device defeats the point.
  • Regenerate at two codes remaining, not at zero. The last code and a lost phone in the same week is how people lock themselves out.
  • Add the key to a second device or a password manager authenticator during setup. That window is the only time it is easy.
  • If you turn it off and on again, delete the old entry in your app. A new key is generated each time and the stale entry produces codes that never work.
  • Do not treat 2FA as covering your team. It guards one login. Everyone else is handled in Account → Team.

Common problems

Invalid code. Make sure your device clock is accurate and try again. Almost always clock drift on the phone rather than a typo. Turn on automatic date and time, then try the next code.

Your verification session expired. Please sign in again. The code step stays open for five minutes after your password. Sign in again.

Too many failed verification attempts. Please sign in again. Ten wrong codes ends the verification session and returns you to the login page. Nothing is locked permanently.

No setup key found. Please start the setup process again. The pending key was cleared before you verified. Start setup again from Account → Security.

I have lost my phone and my backup codes. There is no self-service route back in. If you are still signed in anywhere, go to Account → Security and use Disable 2FA, then set it up again on the new device. If you are not, contact support to prove ownership.

A team member gets "Two-factor authentication is managed by your account owner." Expected: the Security page is owner-only.

Related

Password & Account Recovery · Platform Security · Your Profile · Team Members & Access Control

Password & Account Recovery

There are three routes back into an account, and which one applies depends on who is locked out. Account owners can reset by email. Team members cannot, and need the owner to set a new password for them. Anyone already signed in can change their own from their profile. Knowing which route you are on saves the most commonly wasted hour in this product.

Owner and team member are not the same

An account owner signs in with either a username or an email address: the login field reads Username or Email and accepts both. Self-service reset works for owners.

A team member signs in with their email address only, and has no self-service reset today. The Forgot password? flow only looks at owner accounts, so a team member who uses it sees a success message and no email is ever sent. The working route is the owner setting the password directly, below.

Resetting a forgotten owner password

  1. On the login page, click Forgot password?
  2. Enter the account's Email Address and click Send Reset Link.
  3. You will always see If that email is registered, a password reset link has been sent. That wording is deliberate: it stops anyone using the form to discover which addresses have accounts. It is not confirmation that the address exists.
  4. Open the email and click Reset My Password. The link is good for one hour and one use.
  5. On Set a New Password, enter a New Password of at least 12 characters, repeat it in Confirm Password, and click Set New Password.
  6. You land back on the login page with Your password has been reset successfully.

Changing a password while signed in

As the owner, open Profile from the avatar menu at the top right and use the Change Password card: Current Password, New Password (minimum 12 characters), Confirm New Password, then Change Password. You stay signed in where you are and are signed out everywhere else.

To reset a team member, go to Account → Team, open them with the pencil icon, and use the Set Password block. That also ends any other session they had open. The minimum there is 8 characters rather than 12, which is a quirk of the form and not a recommendation: use 12 or more anyway.

Tips to get the most out of it

  • Use a password change as a remote logout. Laptop left behind, phone stolen, contractor gone: changing your password ends every other session at once. It is the closest thing the account has to a revoke button.
  • Keep the email on your profile current. Reset links go there and nowhere else, and a stale address turns a five minute fix into a support ticket.
  • Expect the code step after a reset. A new password does not clear two-factor authentication, so have your authenticator or a backup code ready before you start.
  • Do not keep guessing at the login page. Failed attempts are counted per IP address and the wait escalates: 15 minutes after five, an hour after fifteen, four hours after thirty. One successful sign-in clears the counter.
  • Set team passwords as though they are permanent. The member cannot rotate their own, so pick something strong first time.

Common problems

A team member used Forgot password? and never got an email. This is the known limitation above: the flow only queries owner accounts, so nothing is sent and the success message appears regardless. Set their password under Account → Team.

This reset link is invalid or has expired. Please request a new one. Links last one hour, work once, and stop working as soon as a reset completes. Opening an older email from a previous attempt is the usual cause.

Too many login attempts. Please try again in 15 minutes. Wait out the stated window instead of retrying, since more attempts push you into the next tier.

Password must be at least 12 characters. Applies to owner resets and owner self-service changes. The team member form accepts 8.

Current password is incorrect. The Change Password card verifies your existing password first. If you genuinely do not know it, sign out and use Forgot password? instead.

Password cannot be changed in demo mode. The shared demo account blocks it.

Related

Two-Factor Authentication · Team Members & Access Control · Your Profile · Platform Security

Platform Security

A plain summary of what the platform does to protect your account and your leads, so you know what you do not have to build yourself and where your own judgment still has to do the work. Nothing here needs configuring: it is all on by default.

What is enforced for you

Every database query runs as a prepared statement with bound parameters, and everything written back to a page is HTML escaped, which closes off injection and cross-site scripting. Every form and background action carries a token that is checked before anything is written.

Passwords are stored as bcrypt hashes, never in readable form. Session cookies are HttpOnly, marked Secure over HTTPS, and scoped so they are not carried on cross-site requests. Admin pages send a Content Security Policy with a fresh per-request nonce, plus frame denial, no-sniff, a referrer policy, and strict transport security.

Your public funnel forms carry a hidden honeypot field and spam heuristics, and submissions are capped per IP address per form over a rolling window. The login page adds an escalating lockout on repeated failures, and the two-factor step allows a limited number of code attempts before dropping you back to the login screen.

Connected third-party tokens, such as calendar and e-sign authorizations, are encrypted at rest rather than stored as plain text. Every query is scoped to your organization, so your leads, funnels, and content are isolated from every other account on the platform.

How sessions are protected

Your admin session is re-validated in the background every few minutes. If your account has been deactivated, your organization suspended or cancelled, or your password changed anywhere, the session is torn down and the cookie expired rather than left alive.

That is also the mechanism behind remote logout. Changing your password from Profile, or completing a reset from the login page, signs you out on every other device while leaving the one you are on. When an owner sets a team member's password under Account → Team, that member is signed out everywhere the same way.

What this does not cover

There is no Active Sessions screen and no per-device list to review: revocation is done by changing the password. There is no IP allow-listing and no single sign-on.

Two-factor authentication protects the owner login only, not team member logins. Team member Permissions cover the pages in that list, and a couple of plan-gated areas sit outside it, so read Team Members & Access Control before handing out login access. A lockbox code on a property page is a courtesy gate for a private listing, not protection for anything genuinely sensitive.

Tips to get the most out of it

  • Turn on two-factor authentication today. It is on every plan, it takes two minutes, and it is worth more than everything else on this page put together.
  • One team member record per human. Shared logins destroy the only useful thing about an audit trail, which is knowing who did it.
  • Grant the narrowest permission set that lets someone do their job. Access handed out for one project is almost never taken back.
  • Never paste API keys, passwords, or card details into a support ticket, a lead note, or a task. Those fields are readable by everyone in your organization with the matching permission.
  • Treat exported files as the weakest link. A lead export is a spreadsheet of personal data sitting in your Downloads folder with none of this protection around it.
  • Check the Audit Log after any support session where you granted access, if your plan includes it. Platform admin access is recorded with a start and an end.

Common problems

I was signed out in the middle of working. The background session check found something changed: a password reset, a deactivated account, or a suspended organization. Sign in again, and if it repeats, check whether someone else changed the password.

I want to see which devices are signed in and kick one off. There is no device list. Change your password from Profile and every other session ends immediately.

A real enquiry on my public form was rejected as spam. The heuristics react to multiple links in a message and to unusually heavy punctuation. Ask the sender to write the message without pasted URLs.

I hit a submission limit testing my own funnel form. Submissions are capped per IP address per form over a rolling window, and repeated test submissions look identical to abuse. Wait out the window or test from a different connection.

Invalid request. Please try again. A security token aged out on a page you left open. Reload and resubmit. Nothing was saved.

Related

Two-Factor Authentication · Password & Account Recovery · Team Members & Access Control · Audit Log

Audit Log

The Audit Log is a read-only history of things that happened to your account: plan changes, status changes, cancellations, messages from the platform, deleted leads, API key activity, and any window where a platform admin accessed your account. It is the record you reach for when you need to prove what changed and when.

What it records, and what it does not

Events you will see include Account Created, Plan Changed, Plan Upgraded, Account Status Changed, Subscription Canceled, Message from Platform, Lead Deleted, API Key Created, API Key Revoked, and the pair Platform Admin Access Started and Platform Admin Access Ended.

It is not a CRM activity feed. Lead and deal edits, logins and logouts, settings changes, webhook deliveries, and day-to-day team member activity are not written here. For the history of a single record, open that lead or deal and read its activity, covered in Notes & Activity Log. If you expected to see who edited a lead yesterday, an empty page is not a sign anything is broken.

Reading the log

  1. Go to Account → Audit Log.
  2. The header shows the total, for example Account activity history: 24 events.
  3. The table has three columns, Event, Performed By, and Date, newest first, 50 rows per page.
  4. Some events carry a second line of detail, such as a plan or status transition, or the reason given for a cancellation.

There is no filtering, searching, sorting, or export, and nothing can be edited or deleted. It is a ledger, not a workspace.

Performed By names whoever did it. Your own actions show the name or email on that user account, Platform Admin means someone from the InvestorFunnel team, and System means automated billing or provisioning. An action taken by an account that has since been removed reads Deleted User.

Tips to get the most out of it

  • The two rows worth actually watching are Platform Admin Access Started and Ended. Together they tell you exactly when someone from the platform was inside your account and for how long. Check them after any support session where you agreed to hands-on help.
  • Treat Lead Deleted as your erasure paper trail. When someone asks to be removed from your database, this is the record that shows you did it. Since there is no export, note the date somewhere durable if you need it for compliance.
  • Reconcile Subscription Canceled and plan events against your card statement. Billing events arrive here from the payment processor, so a mismatch is worth a support ticket.
  • Skim it monthly rather than reading it after a problem. Two minutes, and you will spot an unexpected plan or status change while it is still cheap to sort out.

Common problems

The page says no audit events recorded yet. Normal for a young account. Only account-level events land here, and if nothing has changed since signup there is nothing to show.

An event has no detail beside it. Most events carry one: a plan change shows the old and new plan, a deleted lead shows its email and funnel type, an API key event shows the key name. Platform access events deliberately show no detail, since the label already tells you what happened.

A team member cannot open the Audit Log. Owner-only by design, and hidden from a team member's sidebar. No permission unlocks it.

I do not see Audit Log in my sidebar at all. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

Related

Notes & Activity Log · Export Your Data · Platform Security · Plan & Usage

Export Your Data

Export downloads your account data as CSV files: leads, properties, deals, form submissions and more. Use it for your own backups, for moving data into a spreadsheet, or before closing an account.

How to use it

  1. Go to Account → Export.
  2. Click to download. You receive CSV files covering your account's records.

Tips to get the most out of it

  • Export before any bulk change you cannot undo, such as a large delete or an import. It takes seconds and it is the cheapest insurance available.
  • Export before cancelling, not after. Once an account is closed the data is gone.
  • Keep a dated copy monthly. A single old export is worth more than none.
  • Open in a spreadsheet for the reporting the app does not do. Pivot your leads by source or month and you will learn things no dashboard shows you.

Common problems

A file looks empty. That record type has no data yet. An empty CSV with only headers is the correct result.

Names or addresses look wrong in Excel. Import the CSV as UTF-8 rather than opening it directly, which is a spreadsheet setting, not an export problem.

Related

Team Members & Access Control · Platform Security

1-on-1 Onboarding Call

The onboarding call is a live session with someone from the platform team to get your account configured and your first funnel actually live. It is included with certain plans as a one-off rather than an ongoing service, so treat it like a paid consulting hour, not a welcome chat.

There is no booking page

The call is not scheduled from inside the admin panel. There is no calendar screen and no scheduling link in the app, so nothing is missing if you cannot find one. You request it through a support ticket and agree the time in the ticket thread.

Requesting the call

  1. Go to Account → Support.
  2. Open the New Ticket tab.
  3. In Subject, write something unambiguous such as Onboarding call request.
  4. Leave Priority on Normal. Scheduling is not an outage.
  5. In Description, give your timezone, two or three windows that work, and the one outcome you want by the end of the call.
  6. Click Submit Ticket. The reply arrives in the thread, which you open from My Tickets.

What to have ready

Everything you can do without help, do beforehand. Come with your domain already purchased and your DNS login to hand, your logo and accent color chosen, your buy criteria written down in plain language, a decision on which funnel goes live first, and a list of the tools you already pay for so integrations get sorted in one pass.

Tips to get the most out of it

  • Bring one outcome, not a list of questions. "My seller funnel live on my own domain, taking real leads" gives the call a finish line. Ten questions produce ten half answers.
  • Do the free reading first. Work through Account Setup and Connecting Your Domain beforehand. Spending the call on branding is the most common way people waste it.
  • Write your questions into the ticket before the call. It lets whoever takes the session prepare, which is worth more than anything you can improvise on the day.
  • Ask to be walked through it once, not to have it done for you. A funnel built for you is one funnel. Learning the builder is every funnel after it.
  • Book it early in your billing cycle. Getting live in week one is the difference between a plan that pays for itself and one you renew out of hope.

Common problems

I cannot find anything about the call in the admin panel. Correct, there is no page for it. Request it from Account → Support using the steps above.

I do not think my plan includes it. This is a paid-plan feature and is not available on a trial. If you do not see it, check Account → Plan.

I opened a ticket and cannot find the reply. Replies live in the ticket thread, not your inbox. Open Account → Support, stay on My Tickets, and click View.

Related

Priority Support · Account Setup · Connecting Your Domain · Plan & Usage

Priority Support

Priority Support is a plan entitlement that changes how your requests are handled, not where you send them. The page you use is the same Support page every account has, so this article covers how that page works and how to write a request that gets solved on the first reply instead of the third.

Three destinations, one page

Account → Support has four tabs: My Tickets, New Ticket, Report a Bug, and Request Feature. They do not all go to the same place.

A ticket creates a conversation you can reply to. A bug report and a feature request are filed straight into the development tracker: you get a link to the filed item and that is the end of the exchange. They will not appear in My Tickets and there is no thread to follow. If you need an answer, open a ticket.

Opening a ticket

  1. Go to Account → Support and open New Ticket.
  2. Write a Subject that names the thing that is broken. Subject and description are both required.
  3. Set Priority: Low, Normal, High, or Urgent. You choose this yourself, so it is a claim you are making.
  4. Fill in Description, using the tips below.
  5. Click Submit Ticket. You land on My Tickets with the new ticket at the top.

Working a ticket day to day

My Tickets lists every ticket for your account with its number, Subject, Status (open, pending, resolved, or closed), Priority, and when it was last updated. Click View to open the thread: your original message, then every reply, each marked Support Team or You. Type into the box at the bottom and click Send Reply to continue.

For a reproducible defect use Report a Bug instead: Bug Title, a Severity from Low: Minor inconvenience through Critical: Data loss / security issue, and Steps to Reproduce, then File Bug Report. For something that does not exist yet use Request Feature with a Feature Title and Description, then Submit Request. Both hand back a link to the item created.

One thing to know before you write anything: tickets belong to the organization, so any team member with login access sees the Support page and every ticket on it.

Tips to get the most out of it

  • Spend your Urgent sparingly. Priority is self-declared, so it only carries weight if you have not marked five things urgent this month. Save it for work that is genuinely stopped.
  • Put the URL, the record, and the exact wording in the description. The page you were on, the lead or deal id, what you clicked, and the error message copied character for character. This one habit roughly halves the number of round trips.
  • One issue per ticket. Two problems in one thread means the easy one gets answered and the hard one gets forgotten.
  • There are no attachments, so paste text. Copy the message and the relevant values rather than describing a screenshot you cannot send.
  • Never paste passwords, API keys, or card numbers into a ticket. Everyone in your organization can read it, and support will never need them.
  • Use Report a Bug when you can reproduce it, a ticket when you cannot. Reproduction steps go to the people who fix code. A vague "it broke" needs a conversation first.

Common problems

I filed something and it is not in My Tickets. You used Report a Bug or Request Feature, which go to the development tracker, not the ticket queue. Open a New Ticket if you need a reply.

Token expired. Please refresh. The page sat open long enough for its security token to age out. Reload Account → Support and resubmit. Nothing was sent.

Could not file bug report. The connection to the development tracker is configured on the platform side, so this is not something you can fix. Open a normal ticket describing the bug and mention that filing failed.

Request failed. Please try again. The submission did not reach the server. Resubmit, then check My Tickets for a duplicate.

A team member opened a ticket and I can see it. Working as intended: tickets belong to the organization, not the person who opened them.

I am not sure priority handling applies to my account. Priority handling is a paid-plan feature and is not available on a trial. The Support page itself is open to every account, so nothing disappears without it. To check what your plan includes, see Account → Plan.

Related

1-on-1 Onboarding Call · Plan & Usage · Platform Security · Team Members & Access Control

Can't Find What You're Looking For?

Our support team is here to help. Reach out and we'll get back to you fast.

Contact Support