How Estate Agents Can Stop Advertising Properties Under Offer
Stop Advertising Properties That Are No Longer Available
Property portals and estate agencies spend significant sums advertising individual listings across Google Ads and Meta Ads. Each listing typically has its own campaign or ad group, targeting buyers or renters in specific locations with specific property requirements. The problem arises when a property's status changes — it goes under offer, is withdrawn, or completes — but the ads keep running. Potential buyers click through, find the property unavailable, and leave. The agency has paid for a click that could never convert, and the buyer's trust in the portal erodes.
In a market where properties can move from "available" to "under offer" within hours of listing, the gap between CRM status updates and ad campaign changes is a constant source of wasted budget. CRM-driven advertising automation eliminates this gap entirely, ensuring that the moment a listing's status changes in your property management system, the corresponding ad campaigns respond instantly.
Why This Approach Works
Real estate advertising is inherently dynamic. Unlike e-commerce where a product can be restocked, a property listing is a one-of-one asset. Once it is under offer, there is absolutely zero business value in continuing to advertise it. Every click after that status change is pure waste.
The challenge for agencies managing hundreds of listings is that status changes happen throughout the day. A property might go under offer at 10am, but the campaign manager might not update the ads until their afternoon review. During that window, the listing's ads could accumulate dozens of wasted clicks at several pounds each.
By connecting your CRM or property management system to AdTrigger via webhook, status changes trigger immediate campaign actions. When a property goes under offer, its ads pause within seconds. If the sale falls through and the property returns to market, ads re-enable automatically. This creates a perfect synchronisation between your inventory of available properties and your active advertising, ensuring every penny of ad spend promotes a property that a buyer can actually purchase.
How to Set This Up in AdTrigger
Step 1: Create a Data Source
In AdTrigger, go to Data Sources and create a new Custom Webhook source. Name it to reflect your CRM — for example, "Reapit Listings", "Alto CRM", or "Property Pipeline".
Step 2: Define Your Field Schema
Define the fields your CRM will send with each status update:
- listing_id (string) — the unique property reference
- listing_status (string) — current status such as "available", "under_offer", "sold", or "withdrawn"
- property_type (string) — the type of property (e.g., "detached", "flat", "commercial")
- asking_price (number) — the listed price, useful for budget scaling logic
- days_on_market (number) — how long the property has been listed
Step 3: Get Your Webhook URL and API Key
AdTrigger generates a unique webhook endpoint URL and an API key for Bearer token authentication. Configure these in your CRM's webhook or integration settings.
Step 4: POST Data from Your CRM
Most property CRMs support outgoing webhooks triggered by status changes. Configure a webhook event that fires whenever a listing status is updated. If your CRM does not support native webhooks, use middleware or a scheduled script that polls the CRM API and POSTs current listing statuses to AdTrigger. Any system that can make an HTTP POST request is compatible.
Step 5: Build Your Rules
Create rules using string comparison conditions:
- Pause when unavailable:
listing_statusequals (eq)"under_offer"— pause ads for that property - Also pause on completion:
listing_statusequals (eq)"sold"ORlisting_statusequals (eq)"withdrawn"— pause ads - Re-enable if back on market:
listing_statusequals (eq)"available"— enable ads
Use AND/OR compound logic to combine status conditions with other fields. For example, you might want to increase budget for properties that have been on the market for more than 30 days: days_on_market greater than (gt) 30 AND listing_status equals (eq) "available".
Example Webhook Payload
Here is the JSON your CRM would POST to AdTrigger when a property's status changes:
POST https://api.adtrigger.io/webhooks/<your-source-id>
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"listing_id": "PROP-2024-1293",
"listing_status": "under_offer",
"property_type": "detached",
"asking_price": 425000,
"days_on_market": 14
}When AdTrigger receives this payload, it evaluates listing_status against your rule. Since the value is "under_offer", the condition is met and the campaign advertising this specific property is paused immediately. If the sale falls through weeks later and the CRM sends a new payload with listing_status: "available", ads resume without anyone needing to intervene.
Maximising Your Return on Ad Spend
- Scale budget with days on market: Properties that linger need more advertising push. Use budget adjustment actions to increase spend by 25% when
days_on_marketexceeds 30, and by 50% when it exceeds 60. Set maximum caps to prevent budgets exceeding a sensible limit for the property value. - Differentiate by property value: Higher-value properties justify higher ad spend because the commission is proportionally larger. Create separate rules for different price brackets — premium listings can sustain larger budgets, while lower-value listings should have tighter controls.
- Use status granularity: If your CRM supports detailed statuses like "viewing_booked", "offer_received", and "under_offer", you can create graduated responses. Reduce budget by 30% at "offer_received" and pause completely at "under_offer", capturing the nuance of the sales pipeline.
- Leverage the audit trail for vendor reporting: The full audit trail of every action AdTrigger takes is valuable for reporting to property vendors. You can demonstrate that their advertising budget was spent only while the property was actively being marketed — a strong trust signal.
- Use auto-revert for budget increases: When increasing budgets for stale listings, use auto-revert to ensure the budget returns to baseline if conditions change, preventing spend from drifting upward permanently.
Common Pitfalls to Avoid
- Not handling the "sale fallen through" scenario: Properties that go under offer and then return to market are common. Ensure your rules include a clear re-enable path when status returns to "available", otherwise you will need to manually restart campaigns.
- Inconsistent status values from the CRM: Ensure your CRM sends consistent status strings. If one agent types "Under Offer" and another types "under_offer", your string matching rules will miss one of them. Standardise status values at the CRM level or use the
containsoperator for more flexible matching. - Forgetting to remove sold property campaigns entirely: Pausing a campaign for a sold property preserves it in your account. Set up a process to archive or remove campaigns for properties that have completed, so your ad account stays clean.
- Applying blanket rules to lettings and sales: Rental listings and sales listings have different lifecycle patterns. A rental might cycle between available and let multiple times a year. Create separate rules for sales and lettings pipelines.
- Ignoring data TTL: Configure webhook data expiration appropriately. If your CRM only sends updates on status change rather than on a schedule, the last known status remains valid until the next change. Set TTL long enough to cover the expected gap between updates.
The Bottom Line
Real estate advertising is uniquely suited to automation because every listing is a distinct, perishable asset. The moment a property is no longer available, every click on its ad is wasted money and a disappointed buyer. By connecting your CRM to AdTrigger via webhook, you create a real-time link between property status and campaign activity. Ads run only for available properties, budgets scale with market dynamics, and your team is freed from the manual cycle of checking statuses and toggling campaigns. Available on Starter, Professional, and Enterprise plans, this integration works with any CRM or property management system that can make an HTTP POST request.
Ready to automate this?
Set up this exact automation in AdTrigger — no code, no manual monitoring, just rules that act on real-time data.
Start FreeRelated Guides
Custom Webhooks
How to Stop Advertising Out-of-Stock Products Automatically
Read guide
Custom Webhooks
How Recruitment Agencies Can Pause Job Ads When Positions Are Filled
Read guide
Custom Webhooks
How Subscription Businesses Can Pause Ads When Nearing Capacity
Read guide
Custom Webhooks
How Independent Brokers Can Scale Ads Based on Interest Rates
Read guide