---
tags: done,lisa,gluglu,hubspot
---
# BUY-2343 - Buyers can leave his preferences when his research did not return interesting listings
- https://casavo.atlassian.net/browse/BUY-2343
- https://github.com/casavo/lisa/pull/729
- https://www.figma.com/file/1UMyommiSZVNDQ3ZJF41nn/%5BRebrand%5D-Listing-Platform---PROD?node-id=13834%3A79530
- https://preview-729.lisa.staging.int.casavo.tech/it/case-in-vendita/milano/
- script aggiunta zone Denis: https://gist.github.com/debellotti/2e6f45ca1d0198dde97bd45ac75efda2
```
enum class SearchStatus { LOOKING_AROUND, SOME_VISITS_DONE, OFFER_IN_PROGRESS, OFFER_MADE }
enum class NumberOfRooms { ONE, TWO, THREE, FOUR_OR_MORE }
```
## # TODO
### Lisa side
- [x] component when no results
- [x] change button
- [x] update copy
- [x] new flow wizard
- [x] validazione degli step (abilitazione e disabilitazione del bottone next)
- [x] style footer
- [x] http call
- [x] handle http call error
- [x] finish buyerInterestsFlow tests
- [x] checkbox multi-select
- [x] style header
- [x] improve style steps
- [x] link ultimo step dinamico + test
- [x] scroll solo zone
- [x] freccia dicci cosa stai cercando
- [x] drag slider non deve muoversi la pagina
- [x] focus su selezione mobile disdabilitare per selezione preferred zone
- [x] areoplanino icona bottone invia
- [x] cambiare effetto hover pulsanti multi e single select
- [x] dicci cosa stai cercando:
- [x] immagine poco più piccola 130px
- [x] un po più di spazio sopra immagine 56
- [x] use vanilla extract instead of style attribute
- [x] extract components FormikBudgetSliderText, MultiOptionFormikSelector, OneOptionFormikSelector
- [x] nuova url deve essere mappata sul file production.yml (una volta capite le url giuste)
- [x] sostituire la curva del footer con il nuovo componente configurabile
- [x] cypress tests
- [ ] ~~component at the end of listing if there are less than 20 (or equal)~~ -> new card
- [x] click su logo casavo nella pagina "BuyerInterestFlow" deve riportarlo sul listing per la city senza filtri in target="_blank"
- [x] gestire selezione "Provincia di XXX" -> al momento viene inviato a gluglu array vuoto di geoslugs
- [x] secondo noi vale la pena togliere la possibilità di scegliere intera provincia (parametro al componente visto che è condiviso con i fltri?)
- risorsa utile https://github.com/casavo/gluglu/blob/master/doc/adr/0004-geographical-areas-for-favorite-search.md
- [x] eventi GTM:
- [x] evento quando compare componente NoListingMatchingFilterFound (no results)
- [-] ~~passare come valori i filtri di ricerca~~
`[action: 'Show', category: 'BuyerInterestFlow', label: 'NoResults', value: {filters}]`
- [x] evento click botton "Cosa stai cercando"
`[action: 'Click', category: 'BuyerInterestFlow', label: 'startFlow', value: {}]`
- [x] evento aperto pagina "BuyerInterestFlow" (step 1) (a che punto sei della ricerca)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'Step1', value: {}]`
- [x] evento "BuyerInterestFlow" (step 2) (preferred zones)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'Step2', value: {}]`
- [x] gli eventi della selezione zona ci sono già, va cambiata la category
`category = BuyerInterestFlow`
- [x] evento "BuyerInterestFlow" (step 3) (house type)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'Step3', value: {}]`
- [x] evento "BuyerInterestFlow" (step 4) (max budget)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'Step4', value: {}]`
- [x] evento su slider o text-input (focus out)
`[action: 'FieldUpdate', category: 'BuyerInterestFlow', label: 'BudgetInput', value: {}]`
`[action: 'FieldUpdate', category: 'BuyerInterestFlow', label: 'BudgetSlider', value: {}]`
- [x] evento "BuyerInterestFlow" (step 5) (form contatti)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'Step5', value: {}]`
- [x] evento click su invia
`[action: 'Click', category: 'BuyerInterestFlow', label: 'Submit', value: {}]`
- [x] evento "BuyerInterestFlow" (thank you)
`[action: 'Show', category: 'BuyerInterestFlow', label: 'ThankYouPage', value: {}]`
- [x] evento click bottone "torna alle case"
`[action: 'Click', category: 'BuyerInterestFlow', label: 'ThankYouCTA', value: {}]`
- [ ] ~~evento chiusura pagina "BuyerInterestFlow" (per ora non lo facciamo)~~
`[action: ?, category: ?, label: ?, value: {}]`
- [x] evento click su logo casavo nella pagina "BuyerInterestFlow"
`[action: 'Click', category: 'BuyerInterestFlow', label: 'Logo', value: {}]`
### Gluglu side
- [x] receive BI via api
- [ ] forward BI to hubspot custom object
- [x] develop crm bridge mapping from BI to custom object properties
- [x] develop missing methods in HubspotCrm class and related *Service classes
- [x] trigger CrmBridge.collectBuyerInterest in CollectBuyerInterestsUseCase
- [x] associate the buyer interest to every selected zones (an api call for every zone!)
- [ ] should we distinguish buyer interests coming from the flow from the others ?
- già attualmente possibile guardando l'utente che ha creato il BI ?
- also mortgage team is creating buyer interests via API !
- [ ] store BI on db
- [x] db migration to add new table
- [x] new repository implementation
- [x] trigger new repository in CollectBuyerInterestsUseCase
- [ ] add new table on snowlfake: https://github.com/casavo/data-transformation/pull/1269
- [x] update api documentation: see https://gluglu.staging.int.casavo.tech/api/
- [x] check zone association without geoslugs
- https://app.hubspot.com/contacts/20764147/contact/563251
- https://app.hubspot.com/contacts/20764147/record/2-4474362/2967777796
- [x] :warning: :warning: hubspot custom object zones is not the right one !!!! `2-5185446` -> `2-5507653`
- [x] :warning: production has a different Custom Object ids
- [x] buyer interests: `2-4474362` -> `2-4474003`
- [x] city areas: `2-5507653` -> `2-5200830`
- [x] _too many filterGroups (count: 37, max allowed: 5)_: test flow with more than 5 zones... and paginate the research (?)
### Hubspot side
- [x] update hubspot with missing zones: https://github.com/casavo/hubspot-city-areas-sync
- [x] sync sandbox
- [x] sync prod
- [x] remove sandbox `zones` custom object: it was just a test !!
- [ ] last thoughts:
- [ ] should we update zones ? i ran just cities sync
- [ ] should this script be executed periodically in some pipeline?
## # Improvements
### Lisa side
- [ ] check unused lokalise keys: we replaced some keys with the new ones, so some keys could be unused now
- [x] show casavo property filter also on no listing message
- [x] next button in first step on back: when you come back you've already selected a value in the first step
- [ ] do not show choose zone suggestion when already no results -> new card
- [ ] reset button bugs -> new card
- [ ] it do not reset the "only casavo" filter
- [ ] when only zone and "casavo" filter are applied
- [ ] the reset filter do not appair on filters bar
- [ ] with no result you have the reset filter, but it doesn't do anything!
(http://localhost:3000/it/case-in-vendita/milano/?byZone=forlanini&onlyCasavo=1)
### Gluglu side
- [ ] could we store the HubSpot ids on gluglu db? (it should be a db update operation because we store the BI as first operation)
- created/found contact id
- created buyer interests object
- [ ] HubSpot API could support bulk operation for buyerinterest-zone associations: we're currently sending a request for zone
- [ ] ~~Errore API 500 da BE perchè HubSpot risponde Email non valida (es `asd@asd.asd`): HS torna una 400 e BE trasforma quella in una 500~~
## # Question
- [x] target __blank
- [x] prima pagina non ha tasto indietro
- [x] barra gialla primo step (ce ne è un pezzettino), ultimo step non c'è
- [x] url (verrà anche tradotta? vediamo se non è troppo complicato)
- [x] lista al posto dello slider nella sezione di scelta prezzo? -> no
- [x] checkbox in multiselezione: si/no? -> si
- [x] nella domanda del numero di stanze è strano avere "quadrilocale" e poi "quattro locali o più" (forse l'ultima dovrebbe essere "più di 4")
- ---> togliamo per adesso "quadrilocale"
- [ ] tenere presente che "search status" (a che punto della ricerca sei) è un valore che non arriva ad hubspot attualmente... da aggiungere poi? -> card a parte: https://casavo.atlassian.net/browse/BUY-2353
- [x] anche in questo usecase come per gli altri, per accellerare durante creazione contatto su gluglu cerchiamo se contatto esiste su HubSpot per email e non per numero di telefono ... va bene?