Website & Property-portal Connectors
Owned adapters for public enquiries and listing channels. Canonical payloads are kept separate from per-channel mappings, so a mapping change in one channel can never corrupt master listing or customer data (INT-03).
| Channel | Pattern | Adapter · mapping ver. | Last success | Last rejection | Rate limit | Reconciliation | Status |
|---|---|---|---|---|---|---|---|
| Website — www.almanara.ae Lead form + listing feed · Marketing |
REST / forms / events | adp 3.2.0 · map v2026.2 | 17 Jul 09:52 | 16 Jul 22:04 (honeypot bot) | Normal | Daily · 0 variance | Healthy |
| Bayut Leads in · listing status back · Listing Operations |
REST + signed webhook | adp 2.8.1 · map v2026.2 | 17 Jul 09:56 | 17 Jul 08:20 (replayed nonce) | Normal | Daily · 0 variance | Healthy |
| Property Finder Leads in · XML listing feed · Listing Operations |
REST / XML | adp 2.5.4 · map v2026.1 | 17 Jul 09:41 | 17 Jul 07:15 (429) | Throttled — 429s since 07:00, backoff active | Daily · 0 variance | Degraded — rate limited |
| Dubizzle Leads in · JSON feed · Listing Operations |
REST / JSON | adp 1.9.0 · map v2025.4 | 17 Jul 03:22 | 17 Jul 09:14 (E_TIMEOUT) | Normal | Yesterday · variance 2 (pending) | Degraded — timeouts · INC-2228 |
| Meta Lead Ads Campaign leads · Marketing |
Graph API webhook | adp 1.2.0 · map v2026.1 | 17 Jul 09:02 | 17 Jul 05:48 (schema quarantine) | Normal | Daily · 0 variance | Healthy |
| Houza Phase 2 channel · Listing Operations |
REST / JSON | adp 0.9.0-rc · map v2026.0-draft | — (sandbox only) | — | — | — | Activation gated — sandbox, idempotency & rollback tests pending |
Field mappings — canonical lead ← channel payload
| Canonical field | Channel field | Transform | Required | Validation |
|---|---|---|---|---|
lead.full_name | enquirer.name | trim · title-case | Yes | Pass |
lead.phone_e164 | enquirer.mobile | normalize +971 | Yes | Pass |
lead.email | enquirer.email | lowercase | No | Pass |
lead.source_channel | constant "bayut" | — | Yes | Pass |
lead.listing_ref | property.reference | lookup → LST-* | Yes | Pass — IDs traceable across map versions |
lead.budget_aed | enquiry.budget | currency → AED | No | Pass |
lead.message | enquiry.text | strip HTML · 2,000 char cap | No | Pass — treated as untrusted text |
lead.consent_marketing | enquiry.optin | bool | Yes | Defaulting to NO when absent — see consent |
lead.utm | tracking.* | allowlisted keys only | No | Pass |
Mapping version history & isolation proof
| Connector | Mapping ver. | Deployed | Changed | IDs traceable | Error isolation |
|---|---|---|---|---|---|
| Bayut | v2026.2 | 15 Jul 2026 | budget currency transform; new optin path |
Yes — 1,268 listing refs re-verified | 2 new errors → Bayut connector only |
| Bayut | v2026.1 | 02 May 2026 | listing_ref lookup hardened | Yes | No cross-channel impact |
| Property Finder | v2026.1 | 02 May 2026 | XML namespace update | Yes | No cross-channel impact |
| Dubizzle | v2025.4 | 11 Dec 2025 | initial GA mapping | Yes | Upgrade to v2026.x recommended |
| Meta Lead Ads | v2026.1 | 02 May 2026 | campaign field allowlist | Yes | No cross-channel impact |
Acceptance check INT-03 — passing. Bayut mapping v2026.2 deployed 15 Jul: previously published identifiers remained traceable and the two new validation errors were isolated to the Bayut connector; master listing and customer records untouched.
Ingestion log (last 6 h)
All Success Rejected Timeout| Log ID | Received (UTC) | Channel | Payload | Outcome | Result |
|---|---|---|---|---|---|
LOG-88412 | 17 Jul 09:41 | Bayut | Enquiry — Amina Noor +9715●●●●●312 · ref LST-2041 (PR-A-1104, 2BR) |
Normalized · dedupe clear · routed to Omar Haddad | Success → LEAD-10236 |
LOG-88410 | 17 Jul 09:38 | Property Finder | Enquiry — corporate Falcon Trading FZ-LLC · ref LST-2098 |
Provider returned 429; bounded backoff, retry 09:53 | Rate limited — retry scheduled |
LOG-88407 | 17 Jul 09:14 | Dubizzle | Feed pull — 40 records page 3 of 5 |
E_TIMEOUT after 30s · attempt 2 of 5 · incident INC-2228 |
Timeout — retrying |
LOG-88402 | 17 Jul 08:57 | Website form endpoint | POST from unknown origin IP 203.0.113.44 · no listing ref |
Signature check failed (WEBHOOK_SIG_INVALID) · rejected before parsing · audited |
Rejected — invalid webhook |
LOG-88399 | 17 Jul 08:20 | Bayut | Enquiry — repeat contact +9715●●●●●312 · same listing within 30d |
Matched canonical lead LEAD-10188 · activity appended, no duplicate created | Duplicate suppressed |
LOG-88395 | 17 Jul 05:48 | Meta Lead Ads | Campaign lead — Prototype Residences B missing required phone field |
Failed canonical schema validation · quarantined for steward review · channel unaffected | Quarantined — schema |
LOG-88391 | 17 Jul 05:31 | Website — www.almanara.ae | Lead form — viewing request PR-B-2207 · consent_marketing = yes |
Normalized · routed via round-robin rule R-04 to Layla Hassan | Success → LEAD-10234 |
LOG-88388 | 17 Jul 04:12 | Property Finder | Enquiry — rental ref LST-1922 · budget AED 95,000.00 / yr |
Normalized · dedupe clear · routed to Omar Haddad | Success → LEAD-10231 |
Channel reconciliation — 16 Jul 2026
| Channel | Portal-reported | Ingested | Quarantined | Suppressed dup. | Variance | Status |
|---|---|---|---|---|---|---|
| Website | 64 | 62 | 1 | 1 | 0 | Reconciled |
| Bayut | 57 | 51 | 2 | 4 | 0 | Reconciled |
| Property Finder | 44 | 41 | 1 | 2 | 0 | Reconciled |
| Dubizzle | 28 | 24 | 1 | 1 | 2 | Variance 2 — feed pages missed during timeout window; re-pull queued |
| Meta Lead Ads | 19 | 17 | 2 | 0 | 0 | Reconciled |
| Total | 212 | 195 | 7 | 8 | 2 |
Leads by channel — last 7 days
| Channel | Leads (7d) | Share | Reject rate |
|---|---|---|---|
| Website | 402 | 30.4% | 1.0% |
| Bayut | 348 | 26.3% | 1.4% |
| Property Finder | 279 | 21.1% | 1.1% |
| Dubizzle | 174 | 13.1% | 3.2% |
| Meta Lead Ads | 121 | 9.1% | 4.9% |
Source performance detail: Lead, Source & Agent Analytics.
Risky action — deploy mapping version to production
Consequence: all new Dubizzle payloads parse under v2026.1. Previously published identifiers remain traceable via the version-mapped lookup table. If validation errors rise, they are isolated to the Dubizzle connector; canonical CRM and listing masters are not modified by the deployment.
Pre-activation gates: sandbox connectivity ✓ · contract compatibility ✓ · idempotency test ✓ · rollback test ✓ (§10.2). Approver: Integration Owner (Vikram Nair) — maker Elena Petrova cannot self-approve. Rollback path: one-click revert to v2025.4 with incident reference.
Static render mockup — no live data. Source: ERP Modern Development Specification v2.0 · Covers: INT-03 (with §10.2 provider-profile activation gates).