Actions

Inbound Enquiries: Difference between revisions

From Standout Property Manager Wiki Help

(Standout Communications Centre, inbound feeds and Meta documentation)
 
imported>Standout documentation update
(Update Standout help for Sales Progression 2.0 and retain recent Communications Centre, portal, Customer Portal and Reports Centre documentation through 6 September 2026)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
__NOTOC__
= Inbound Enquiries =
= Inbound Enquiries =


Inbound enquiry configuration controls how external property portals and agency websites send new customer enquiries into Standout's [[Communications Centre]].
Inbound enquiry connections are managed under '''Administration → Feeds/Portals'''. They feed portal and website leads into the normal [[Communications Centre]] rather than creating separate inboxes.


Open:
== Supported sources ==


'''Administration → Feeds/Portals → Inbound enquiries'''
{| class="wikitable"
! Source !! Connection model !! Branch/customer setting
|-
| Rightmove || Scheduled RTDF polling || Rightmove Branch ID
|-
| OnTheMarket || Scheduled RTDF polling || OnTheMarket Branch ID and telephone-lead mode
|-
| Zoopla || Scheduled Leads API polling || Zoopla internal Branch ID
|-
| Homeflow || Push callback || Fixed Standout branch
|-
| Agency website || HTTPS API || Website source/API key and optional fixed branch
|}
 
Shared provider credentials are managed centrally by ISSL under '''Tools'''. Agency administrators normally only configure the branch-specific values shown above.
 
== Common lead processing ==
 
Regardless of source, Standout uses the same core process:


The Inbound enquiries tab is configuration. Staff handle the resulting enquiries day-to-day in '''Communications Centre'''.
# deduplicate using the source's lead/external ID where available;
# match the property using the supplied property/agent reference;
# infer sales/rental context where the source lead type is generic;
# match an existing CRM contact by email/telephone only where the match is sufficiently clear;
# assign to the property's active managing negotiator where possible;
# preserve the complete original payload for audit/future mappings;
# place the communication in the normal Communications Centre workflow.


== Inbound portal enquiries ==
The enquiry can then be corrected, linked, converted to CRM actions and responded to from within Standout.
Standout supports inbound lead connections for:


* '''Rightmove'''
== Rightmove ==
* '''Zoopla'''
* '''OnTheMarket'''
* '''Homeflow'''


Shared provider credentials are managed centrally by ISSL where required, so an agency normally enters only its own branch-specific details.
Rightmove uses the RTDF branch email interface. Standout-wide Network ID/API/certificate details are managed centrally and each agency branch supplies its Rightmove Branch ID.


=== Create a portal connection ===
Enabled connections are polled by the Laravel scheduler. Poll windows deliberately overlap and Rightmove's lead ID is used for deduplication, so a repeat poll should not create duplicate enquiries.
# Open '''Administration → Feeds/Portals → Inbound enquiries'''.
# Under '''Inbound portal enquiries''', choose the Portal.
# Choose the Standout branch.
# Enter a useful Connection name, for example ''Rightmove - Bolton''.
# Enter the required Portal Branch ID where applicable.
# Click '''Connect portal enquiries'''.


{| class="wikitable" style="width:100%"
Qualified lettings answers are retained and the customer-written message is separated from the positional qualification information where possible.
! Portal
! Agency-specific setup
! How enquiries arrive
|-
| Rightmove
| Select a Standout branch and enter the customer's Rightmove Branch ID. Shared network/API/certificate settings are maintained centrally by ISSL.
| Pulled through the shared Standout Rightmove API connection. Use '''Sync now''' when a manual check is needed.
|-
| OnTheMarket
| Select a Standout branch and enter the customer's OnTheMarket Branch ID. Shared API URL/certificates are maintained centrally by ISSL.
| Pulled through the shared Standout OnTheMarket connection. Use '''Sync now''' when a manual check is needed.
|-
| Zoopla
| Select a Standout branch and enter Zoopla's internal Branch ID. Shared OAuth Client ID/Secret and API URLs are maintained centrally in Standout Tools.
| Pulled through the Zoopla Leads API. Use '''Sync now''' when a manual check is needed.
|-
| Homeflow
| A fixed Standout branch is required. Create one Homeflow connection per branch. Homeflow Branch ID is optional/reference information.
| Homeflow pushes leads to the secure callback URL generated by Standout. There is nothing to poll manually.
|}


If the shared credentials for Rightmove, OnTheMarket or Zoopla have not yet been configured by ISSL, Standout shows a warning and the agency connection cannot be created until that central setup is complete.
== OnTheMarket ==


== Connected inbound portals ==
OnTheMarket uses its RTDF-compatible endpoints and Standout's shared client certificate. Each agency branch supplies its OnTheMarket Branch ID.
The '''Connected inbound portals''' table shows:


* Portal;
The working Standout transport uses the P12/PFX client certificate directly with TLS 1.2/HTTP 1.1. P12/PFX files already contain the private key, so a separate PEM key is not used for that certificate format.
* Standout branch;
* connection name and portal branch details;
* last lead received;
* last sync and any reported portal lag/error;
* enabled/disabled status.


Available actions include:
OnTheMarket telephone leads are optional per connection:


* '''Edit''';
* '''Off''' – do not request telephone leads;
* '''Sync now''' for polling integrations;
* '''Missed calls only''' (default) – import Unanswered, Abandoned and Missed calls;
* '''Enable / Disable''';
* '''All calls''' – import all supported telephone lead statuses.
* '''Regenerate callback''' for Homeflow.


=== Homeflow callback security ===
See [[OnTheMarket Inbound Enquiries]].
When a Homeflow connection is created, Standout shows the complete secure HTTPS callback URL once. Copy it before leaving the page and give it to Homeflow when they configure the CRM integration.


If the Homeflow callback secret is regenerated, the previous callback URL stops working immediately. Supply the new URL to Homeflow before expecting further leads.
== Zoopla ==


== Agency website enquiries ==
Zoopla uses OAuth2 machine-to-machine authentication for the Leads API. Each branch must use Zoopla's own internal Branch ID, not the Standout Office ID.
The same Inbound enquiries tab can create secure API sources for an agency's own website.


A website source can be created for the whole website or, where useful, one per branch.
The production lead sync uses the Leads API client-credentials/audience authentication. A separate generic Zoopla OAuth form is available only as a comparison in the diagnostic tools; it is not used as a silent production fallback.


# Enter a '''Source name''', for example ''Main website''.
Standout requests applicant and appraisal leads when the shared Zoopla credentials are active. Production use therefore depends on Zoopla supplying/enabling the correct client credentials and lead permissions.
# Choose a '''Fixed branch''' or leave it as ''Website may specify branch''.
# Optionally enter the website origin, for example `https://www.example.co.uk`.
# Click '''Create website API key'''.
# Copy the API key immediately. Standout does not display the complete key again.


The source is then shown in '''Configured website enquiry sources'''.
See [[Zoopla Leads API]].


=== Regenerate or disable a website key ===
== Homeflow ==
* '''Regenerate key''' creates a replacement secret. The old key stops authenticating requests, so update the website immediately.
* '''Disable''' temporarily stops the source accepting enquiries without deleting its configuration.
* '''Enable''' reactivates it.


The displayed key prefix is only an identifier; it is not the complete secret.
Homeflow is push-only. Create a Homeflow inbound connection for a fixed Standout branch and give Homeflow the generated secure callback URL. There is no scheduled '''Sync now''' poll for Homeflow.


== Website Enquiry API developer guide ==
See [[Homeflow Inbound Enquiries]].
The technical API documentation is deliberately kept off the main Feeds/Portals configuration screen.


Use the '''Website API integration''' panel and click '''Developer integration guide'''.
== Website enquiries ==


The dedicated guide contains the endpoint, authentication, field definitions, examples, response codes, retry guidance and security requirements.
Agency websites can POST enquiries directly to Standout over HTTPS using the [[Website Enquiry API]]. Each source has a secret API key and can optionally be restricted to a fixed branch/origin.


At the top of the developer guide you can:
Use a stable unique <code>external_id</code> for each website submission. Retrying the same ID is safe and prevents duplicate communications.


* '''Download PDF'''; or
== Scheduler ==
* enter a recipient name/email address and '''Email PDF'''.


The PDF is generated on demand from the same guide content used by the web page, so the emailed guide remains aligned with the current Standout API documentation.
Rightmove, OnTheMarket and Zoopla polling depend on Laravel's scheduler. Homeflow is push-only.


See [[Website Enquiry API]] for the staff/administrator workflow.
Typical server scheduler entry:


== What Standout does when an enquiry arrives ==
<pre>* * * * * cd /path/to/standout && php artisan schedule:run >> /dev/null 2>&1</pre>
Standout attempts to do useful routing before the enquiry reaches the queue:


# uses the source's `external_id` where supplied to protect against duplicate submissions;
The portal sync command can also be run manually for testing:
# resolves the property using Standout Property ID or property reference where available;
# determines the branch using the source's fixed branch, a valid requested branch, or the matched property's branch;
# looks for one unambiguous existing Contact using email/telephone;
# assigns the enquiry to the property's active managing negotiator where possible;
# stores the original source payload; and
# adds the enquiry to [[Communications Centre]].


This automation helps, but staff should still verify the Contact/property before progressing the lead.
<pre>php artisan enquiries:sync-portals</pre>


== Troubleshooting ==
or for a single connection:
=== Portal connection cannot be created ===
Check that:


* the Communications Centre database update is installed;
<pre>php artisan enquiries:sync-portals --connection=CONNECTION_ID</pre>
* the portal-connections update is installed;
* the shared ISSL provider credentials are configured where required;
* the correct Standout branch has been selected;
* the portal Branch ID is the provider's branch identifier, not a property ID or account login.


=== Leads are not appearing ===
== Testing checklist ==
Check the connection is enabled and review '''Last lead''', '''Last sync''' and any error shown in the Connected inbound portals table.


For Homeflow, confirm Homeflow is using the current callback URL. For polling portals, use '''Sync now''' to test the connection immediately.
# Save the branch connection.
# Use the appropriate connection test/Sync now action where available.
# Submit a real test enquiry.
# Confirm exactly one communication appears.
# Confirm the property, branch and contact match are sensible.
# Repeat the poll/submission and make sure the same source ID is treated as a duplicate.
# Confirm later enquiries arrive without manual intervention.


=== Website leads are rejected ===
[[Category:Administration]]
Check that the website is using the current complete API key and that any configured origin matches the site sending the request. The developer should use the in-app [[Website Enquiry API|Website Enquiry API developer guide]] for response/error details.
[[Category:Communications Centre]]


== Related guides ==
* [[Communications Centre]]
* [[Feeds and Portals]]
* [[Website Enquiry API]]

Latest revision as of 08:45, 6 September 2026

Inbound Enquiries

Inbound enquiry connections are managed under Administration → Feeds/Portals. They feed portal and website leads into the normal Communications Centre rather than creating separate inboxes.

Supported sources

Source Connection model Branch/customer setting
Rightmove Scheduled RTDF polling Rightmove Branch ID
OnTheMarket Scheduled RTDF polling OnTheMarket Branch ID and telephone-lead mode
Zoopla Scheduled Leads API polling Zoopla internal Branch ID
Homeflow Push callback Fixed Standout branch
Agency website HTTPS API Website source/API key and optional fixed branch

Shared provider credentials are managed centrally by ISSL under Tools. Agency administrators normally only configure the branch-specific values shown above.

Common lead processing

Regardless of source, Standout uses the same core process:

  1. deduplicate using the source's lead/external ID where available;
  2. match the property using the supplied property/agent reference;
  3. infer sales/rental context where the source lead type is generic;
  4. match an existing CRM contact by email/telephone only where the match is sufficiently clear;
  5. assign to the property's active managing negotiator where possible;
  6. preserve the complete original payload for audit/future mappings;
  7. place the communication in the normal Communications Centre workflow.

The enquiry can then be corrected, linked, converted to CRM actions and responded to from within Standout.

Rightmove

Rightmove uses the RTDF branch email interface. Standout-wide Network ID/API/certificate details are managed centrally and each agency branch supplies its Rightmove Branch ID.

Enabled connections are polled by the Laravel scheduler. Poll windows deliberately overlap and Rightmove's lead ID is used for deduplication, so a repeat poll should not create duplicate enquiries.

Qualified lettings answers are retained and the customer-written message is separated from the positional qualification information where possible.

OnTheMarket

OnTheMarket uses its RTDF-compatible endpoints and Standout's shared client certificate. Each agency branch supplies its OnTheMarket Branch ID.

The working Standout transport uses the P12/PFX client certificate directly with TLS 1.2/HTTP 1.1. P12/PFX files already contain the private key, so a separate PEM key is not used for that certificate format.

OnTheMarket telephone leads are optional per connection:

  • Off – do not request telephone leads;
  • Missed calls only (default) – import Unanswered, Abandoned and Missed calls;
  • All calls – import all supported telephone lead statuses.

See OnTheMarket Inbound Enquiries.

Zoopla

Zoopla uses OAuth2 machine-to-machine authentication for the Leads API. Each branch must use Zoopla's own internal Branch ID, not the Standout Office ID.

The production lead sync uses the Leads API client-credentials/audience authentication. A separate generic Zoopla OAuth form is available only as a comparison in the diagnostic tools; it is not used as a silent production fallback.

Standout requests applicant and appraisal leads when the shared Zoopla credentials are active. Production use therefore depends on Zoopla supplying/enabling the correct client credentials and lead permissions.

See Zoopla Leads API.

Homeflow

Homeflow is push-only. Create a Homeflow inbound connection for a fixed Standout branch and give Homeflow the generated secure callback URL. There is no scheduled Sync now poll for Homeflow.

See Homeflow Inbound Enquiries.

Website enquiries

Agency websites can POST enquiries directly to Standout over HTTPS using the Website Enquiry API. Each source has a secret API key and can optionally be restricted to a fixed branch/origin.

Use a stable unique external_id for each website submission. Retrying the same ID is safe and prevents duplicate communications.

Scheduler

Rightmove, OnTheMarket and Zoopla polling depend on Laravel's scheduler. Homeflow is push-only.

Typical server scheduler entry:

* * * * * cd /path/to/standout && php artisan schedule:run >> /dev/null 2>&1

The portal sync command can also be run manually for testing:

php artisan enquiries:sync-portals

or for a single connection:

php artisan enquiries:sync-portals --connection=CONNECTION_ID

Testing checklist

  1. Save the branch connection.
  2. Use the appropriate connection test/Sync now action where available.
  3. Submit a real test enquiry.
  4. Confirm exactly one communication appears.
  5. Confirm the property, branch and contact match are sensible.
  6. Repeat the poll/submission and make sure the same source ID is treated as a duplicate.
  7. Confirm later enquiries arrive without manual intervention.