--- 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?