Runbook — Migrating a Realtor off SellingToolz/AdvanceWebsites (P1)
Reusable per client. First instance: Team Beckett. Moves content + data off the SellingToolz backend onto the WiseAI Realtor platform. Pairs with the build specs (search/sold/coming-soon) and the parent brief WISEAI_REALTOR_BACKEND_REPLACEMENT_REQUIREMENTS_2026-07-02.md.
Gate: do NOT flip the public domain to our site until (a) the CREA technology-provider registration is complete + feed legitimate (
FOUNDER_ACTIONS.md2026-07-02) and (b) the P0 full-board search is live. This runbook is the data move; the feed move is separate.
1. Testimonials (73 for Beckett)
- Source: SellingToolz Testimonials tab (73 active, 3 pages). No export button confirmed → likely manual/scrape from the authenticated backend (read-only) or the public
/testimonialspage. - Target: our testimonials (
metadata.websitetestimonials override via the site editor) and/or the Reviews Engine. Attribution first-name only (privacy), preserve ratings. - Steps: capture name + quote + rating per testimonial → bulk-load into the testimonials section → publish. Verify count renders on
/s/[slug]+/reviews.
2. Leads / contacts from LeadBooker ⚠️ CASL-sensitive
- Source: LeadBooker CRM (
/manage/crm). No external CRM connector is active (FollowUpBoss/Top Producer all off), so leads live only here → export via CSV (SellingToolz export, founder-driven). - Target:
re_contacts(+re_interactions) via the intake path (captureToCrm) or a one-time bulk import. - ⚠️ COMPLIANCE (founder-gated, do not auto-run):
- These are real client PII. Import is a DB write to the customer's own account — fine — but migrating a lead list does NOT grant consent to email them. Under CASL, contacting migrated leads needs a lawful basis (existing business relationship, prior express/implied consent, or the inquiry that created the lead). Set
email_consent_statusper the real basis; default to the most conservative (unknown/impliedonly where a genuine relationship exists), and route everything through the universal suppression gate. - NO campaign send to migrated leads without founder review + a consent basis per contact (the no-cron-sends contract stands).
- These are real client PII. Import is a DB write to the customer's own account — fine — but migrating a lead list does NOT grant consent to email them. Under CASL, contacting migrated leads needs a lawful basis (existing business relationship, prior express/implied consent, or the inquiry that created the lead). Set
- Steps: founder exports CSV → map fields → import with correct consent basis +
source_detail='migrated_sellingtoolz'→ verifyre_contactsrows + consent events. Get a count first.
3. Team roster + designations
- DONE for Beckett (Terry Beckett Sr. / Terry Beckett Jr. / Sheri Beckett on account
…c01). For a new client: create the roster with exact designations (Beckett ref: Terry SRS/ABR/SRES/Broker/MVA; Sheri ABR/SRES/SRS/DLG/Broker; Terry E.W. Broker).
4. SEO / meta / tracking
- Meta description + keywords → site config meta fields (Beckett values in the config export / requirements doc §1.2).
- Custom CSS (minor, e.g.
.team_bckt_email{font-size:26px}) → port if still relevant. - Tracking decision (founder): their Google Remarketing (
866728424) + Facebook Pixel (1010422172436695) — keep (migrate the tags) or replace with our first-party honest analytics. Recommend our analytics + only add remarketing if the client actively runs paid ads. Document the choice.
5. Content, nav, header/footer
- Header/footer text (agent block, phones), banner ("START SEARCHING MLS® LISTINGS"), thank-you copy, top/middle nav items → the site editor sections. Note the Open Houses middle-nav item — needs an
/open-housespage we don't yet have (small P2 build).
6. Listings
- Active listings come from the DDF feed (post-registration) — not migrated by hand. Own sold listings → the sold gallery (spec:
realtor-sold-gallery-mvp.md). Manual/pre-market → coming-soon (spec:realtor-coming-soon-mvp.md). Featured order →sort_order.
7. Cutover
- Content + testimonials + roster migrated and verified on our site (unlisted).
- CREA registration done + feed legitimate + P0 search live.
- Leads imported with correct consent basis.
- Complete the brokerage-identity Compliance form (publish gate).
- Founder go → point
teambeckett.caDNS at our site; decommission the SellingToolz site. - Post-cutover: voice smoke call, verify lead intake end-to-end, monitor.
8. Per-client checklist (copy for each new migration)
- Testimonials exported + loaded + verified
- Leads CSV exported + imported with consent basis (founder-gated)
- Roster + designations created
- Meta/SEO + tracking decision documented
- Header/footer/nav/content ported
- Own-sold + pre-market listings entered
- CREA feed legitimate + P0 search live
- Compliance form (publish gate) complete
- Domain cutover on founder go
- Post-cutover verification (voice/chat/lead intake)
See also
WISEAI_REALTOR_BACKEND_REPLACEMENT_REQUIREMENTS_2026-07-02.md · realtor-fullboard-search-mvp.md · realtor-sold-gallery-mvp.md · realtor-coming-soon-mvp.md · products/wiseai-realtor/identity-consent-model.md (consent) · FOUNDER_ACTIONS.md 2026-07-02 (CREA registration + compliance gates).