Commit graph

57 commits

Author SHA1 Message Date
Daniel Roth
3ff99619ac Fire Abri flows on a test project code via an override env var 🟥
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 10:24:54 +00:00
Daniel Roth
84d0e1e0d5 Date an abandonment to the deal's own dates, not now() 🟩
date_abandoned now resolves to the third failed attempt's confirmed
survey date, falling back to its last submission date, rather than the
processing date. This dates the OpenHousing cancellation to when the
job actually lapsed even if the trigger message lags or redelivers.

- domain: abandonment_date() encodes the confirmed-survey -> last-
  submission fallback
- DealAbandonment carries both dates; abandon_job raises
  AbandonmentDateUnknownError when a deal has neither
- last_submission_date now flows through the trigger message and request
- the injected clock is dropped: nothing reads now() any more

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 08:51:39 +00:00
Daniel Roth
aaa8c9763f A deal crossing into abandonment builds an abandon_job message 🟥
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 15:53:47 +00:00
Daniel Roth
70fb6d5735 Repair the Abri trigger-builder import after its move into HubspotDealDiffer
The move in 3934e2d3 left the trigger-builder test and local smoke script
importing the deleted etl.hubspot.abri_flow_triggers module; point them at
HubspotDealDiffer.check_abri_triggers_and_construct_message so they collect
and run again.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 15:52:55 +00:00
Daniel Roth
c0e444fccb abri_api not abri 2026-07-07 14:40:33 +00:00
Daniel Roth
3934e2d359 move trigger check to HubspotDealDiffer 2026-07-07 13:15:40 +00:00
Daniel Roth
d9b441962f Name the Abri trigger builder for its None-or-message contract 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 13:02:25 +00:00
Daniel Roth
a3985389ab The deal row names the job number client_booking_reference, matching HubSpot and the schema 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:43:40 +00:00
Daniel Roth
481c01098d Real Abri portal deals fire the job-logging trigger 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:46:33 +00:00
Daniel Roth
eaedd9a63d Real Abri portal deals fire the job-logging trigger 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:44:51 +00:00
Daniel Roth
8847d06d68 A first confirmed survey date on an Abri deal reaches the abri queue 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:19:01 +00:00
Daniel Roth
2e72f32d52 A scrape that fires Abri triggers builds one message naming the fired flows 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:12:41 +00:00
Daniel Roth
62d9bbf147 The deal upsert lands client_booking_reference in the job_no column 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:08:17 +00:00
Daniel Roth
faac50eca4 A client_booking_reference change triggers a deal database update 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:04:54 +00:00
Daniel Roth
021e7c15bb Abri job amendment trigger is named after the OpenHousing job it amends 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:26:15 +00:00
Daniel Roth
ff868156d1 Abri job logging trigger is named after the DomnaRelay route it fires 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 15:26:41 +00:00
Daniel Roth
c00ae894ee Deal differ detects number of attempts changes for db update 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:14:22 +00:00
Daniel Roth
9559f23741 Abri deal abandonment fires only when the deal newly becomes abandoned 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:12:59 +00:00
Daniel Roth
41d62ce2b2 Abri deal abandonment requires a negative outcome 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:10:26 +00:00
Daniel Roth
af85e0ed2b Abri deal abandonment requires at least three parseable attempts 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:07:38 +00:00
Daniel Roth
33848a76fe Abri deal abandonment ignores deals that are not Abri condition deals 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:04:45 +00:00
Daniel Roth
aca507cc47 Abri deal abandonment triggers after three attempts with a negative outcome 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:03:42 +00:00
Daniel Roth
a36fe00132 Abri tenant data fetch resolves abri deals by associated project id 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:28:25 +00:00
Daniel Roth
47842da7b9 Abri tenant data fetch requires a parseable new commencement date 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:27:22 +00:00
Daniel Roth
c18f4feb3e Abri tenant data fetch ignores already-set commencement dates 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:26:02 +00:00
Daniel Roth
0b8f0f17a9 Abri tenant data fetch does not trigger for non-abri deals 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:25:07 +00:00
Daniel Roth
da0ef3e5e0 Abri tenant data fetch triggers when commencement date is first set 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:24:11 +00:00
Daniel Roth
1529544c19 Abri survey amendment trigger defers first-time survey dates to the creation trigger 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:52:26 +00:00
Daniel Roth
8c5d1a27ff Abri survey amendment trigger fires when the confirmed survey time changes on an Abri condition deal 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:50:53 +00:00
Daniel Roth
fce9d30589 Abri survey amendment trigger stays quiet when the survey date and time are unchanged 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:48:53 +00:00
Daniel Roth
16b25c4b54 Abri survey amendment trigger ignores deals that are not Abri condition deals 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:47:51 +00:00
Daniel Roth
1c75b44630 Abri survey amendment trigger fires when the confirmed survey date changes on an Abri condition deal 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:47:07 +00:00
Daniel Roth
911e77d7cf Abri survey creation trigger falls back to project code only when no project is associated 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:28:13 +00:00
Daniel Roth
cc682e3e74 Abri survey creation trigger recognises deals by their associated Abri project id 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:27:05 +00:00
Daniel Roth
c059771af5 Abri survey creation trigger ignores syncs with no parseable confirmed_survey_date 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:02:08 +00:00
Daniel Roth
5b9038ab61 Abri survey creation trigger matches the Abri Condition project code case-insensitively 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:01:25 +00:00
Daniel Roth
882eb1eff9 Abri survey creation trigger ignores deals outside the Abri Condition project 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:59:05 +00:00
Daniel Roth
697df8ade3 Abri survey creation trigger ignores deals that already have a confirmed_survey_date 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:58:09 +00:00
Daniel Roth
bd3c45d81c Abri survey creation trigger fires when confirmed_survey_date is first set on an Abri Condition deal 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:56:49 +00:00
Daniel Roth
f3cbfd8275 fix broken unit test 2026-06-11 09:40:09 +00:00
Jun-te Kim
2b29b4b458 hubspot projects data is scraped 2026-05-28 10:54:15 +00:00
Daniel Roth
71aadfe78d add pashub functions to orchestrator tests, and rename existing magicplan ones 2026-05-12 09:31:47 +00:00
Daniel Roth
f0300eb8ff Replace new-deal MagicPlan trigger to use outcome=="surveyed" 🟥 2026-05-12 08:57:24 +00:00
Daniel Roth
2049553176 Trigger MagicPlan on outcome "surveyed" transition 🟥 2026-05-11 09:25:41 +00:00
Daniel Roth
676022a4c0 Fix coordination/design field names and add MagicPlan trigger to HubspotDealDiffer 🟥 2026-05-08 12:53:37 +00:00
Jun-te Kim
78d6f4f939 improved deal_id so its clear its not a real one 2026-05-01 13:52:05 +00:00
Jun-te Kim
0a97c2d21f fix for hubspot deal properties not updated when they were unset 2026-05-01 12:27:39 +00:00
Daniel Roth
3814eed926 correct hubspot deal differ logic 2026-04-21 14:05:10 +00:00
Daniel Roth
9852aa2809 differ handles missing timezone from hubspot 🟩 2026-04-09 16:40:47 +00:00
Daniel Roth
3123723e8b differ handles missing timezone from hubspot 🟥 2026-04-09 16:25:44 +00:00